#include #include #include #include #include #include "graph.h" #include "schema.h" static void sample(int rotate) { ("grnode",rotate); (mode,node); drawrect(mode,node,20,20); (mode,node,true); drawrect(mode,node,30,30); drawrect(mode,node,30,30); drawrect(mode,node,40,40); drawrect(mode,node,50,50); (mode,node); drawellipse (mode,node,30,20,"func1",""); (mode,node); drawellipse (mode,node,30,20,"func2","desc2"); (mode,node); drawellipse (mode,node,40,30,"func3","desc3"); (mode,node); drawellipse (mode,node,40,30); (mode,node); (mode,node); drawellipse (mode,node,6,6); drawellipse (mode,node,10,10); drawellipse (mode,node,15,15); drawellipse (mode,node,15,10); drawellipse (mode,node,15,10); drawellipse (mode,node,15,10); drawrect (mode,node,node.depth,node.width); } static void view0(int rotate) { UNIFORM_OBJECT *func; (); drawellipse (mode,node,w,h,title,desc); glocal.func = &func; ("view 2",rotate); (mode,node); drawellipse (mode,node,40,25,"","main"); (mode,node); drawellipse (mode,node,20,15,"","update"); drawellipse (mode,node,20,15); (mode,node); drawellipse (mode,node,20,15); glocal.func->draw (mode,node,"read commands"); glocal.func->draw (mode,node,"read data"); drawellipse (mode,node,20,15); (mode,node); drawellipse (mode,node,20,15,"","report"); drawellipse (mode,node,20,15); (mode,node); drawellipse (mode,node,20,15); glocal.func->draw (mode,node,"print"); glocal.func->draw (mode,node,"mail"); glocal.func->draw (mode,node,"fax"); } static void view1(int rotate) { ("Simple program",rotate); (mode,node); drawellipse (mode,node,40,25,"","main"); drawellipse (mode,node,40,25,"","update"); drawellipse (mode,node,40,25,"","report"); } static void view2(int rotate) { ("view 2",rotate); (mode,node); drawellipse (mode,node,40,25,"","main"); (mode,node); drawrect (mode,node,node.depth,node.width,"update implementation",""); (mode,node); drawellipse (mode,node,20,15,"","update"); drawellipse (mode,node,20,15); (mode,node); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15,"","read commands"); drawellipse (mode,node,20,15,"","read data"); drawellipse (mode,node,20,15); (mode,node); drawrect (mode,node,node.depth,node.width,"report implementation",""); (mode,node); drawellipse (mode,node,20,15,"","report"); drawellipse (mode,node,20,15); (mode,node); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15,"","print"); drawellipse (mode,node,20,15,"","mail"); drawellipse (mode,node,20,15,"","fax"); } static void view3(int rotate) { ("view 3",rotate); (mode,node); drawellipse (mode,node,40,25,"","main"); (mode,node); node.setz (30); (mode,node); drawrect (mode,node,node.depth,node.width,"update",""); (mode,node); drawellipse (mode,node,20,15,"","update"); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15,"","read commands"); drawellipse (mode,node,20,15,"","read data"); (mode,node); (mode,node); drawrect (mode,node,node.depth,node.width,"report",""); (mode,node); drawellipse (mode,node,20,15,"","report"); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15); drawellipse (mode,node,20,15,"","print"); drawellipse (mode,node,20,15,"","mail"); drawellipse (mode,node,20,15,"","fax"); } static void boss(int rotate) { ("Le boss",rotate); (mode,node); drawrect (mode,node,20,20,"","Jacques"); (mode,node,true); drawrect (mode,node,20,20,"","Jean"); drawrect (mode,node,20,20,"","Jean1"); drawrect (mode,node,20,20,"","Jean2"); drawrect (mode,node,20,20,"","Pierre"); drawparagraph (mode,node ,"void main()\n" "{\n" " int a;\n" "}"); } static void dostar (int rotate) { int i; ("star",rotate); (mode,node); drawellipse (mode,node,50,50,"","C"); drawellipse (mode,node,10,10,"","1"); drawrect (mode,node,10,10,"","2"); drawrect (mode,node,10,10,"","3"); drawrect (mode,node,10,10,"","4"); drawrect (mode,node,10,10,"","5"); drawrect (mode,node,30,30,"","6"); } static void dobox (int rotate) { int i; ("box",rotate); (mode,node); drawrect (mode,node,250,50,"","Switch"); drawrect (mode,node,30,30,"","left"); drawrect (mode,node,30,20,"","right"); drawellipse (mode,node,10,10,"","S1"); drawrect (mode,node,10,10,"","S2"); drawrect (mode,node,10,10,"","S3"); drawrect (mode,node,10,10,"","S4"); drawrect (mode,node,10,10,"","S5"); drawrect (mode,node,30,30,"","S6"); drawellipse (mode,node,10,10,"","C1"); drawrect (mode,node,10,10,"","C2"); drawrect (mode,node,10,10,"","C3"); drawrect (mode,node,10,10,"","C4"); } static void dochip (int rotate) { int i; ("box",rotate); (mode,node); node.depth = 40; drawrect (mode,node,node.depth,node.width,"",""); if (pin < 3){ drawrect (mode,node,10,10,"",""); } if (pin < 2){ // drawrect (mode,node,10,10,"",""); node.depth = 10; node.width = 1; } // No pin on top if (pin < 3){ // drawrect (mode,node,10,10,"",""); node.width = node.depth = 10; } //if (pin < 2){ // drawrect (mode,node,10,10,"",""); //} } static SCHEMA_REGISTER rsample ("grnode",sample); static SCHEMA_REGISTER rview0 ("view0",view0); static SCHEMA_REGISTER rview1 ("view1",view1); static SCHEMA_REGISTER rview2 ("view2",view2); static SCHEMA_REGISTER rview3 ("view3",view3); static SCHEMA_REGISTER rboss ("grhline",boss); static SCHEMA_REGISTER rstar ("star",dostar); static SCHEMA_REGISTER rbox ("box",dobox); static SCHEMA_REGISTER rchip ("chip",dochip);