summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp132
1 files changed, 132 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp b/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp
new file mode 100644
index 00000000000..06ca5761209
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths.mp
@@ -0,0 +1,132 @@
+% Part of the MetaUML manual.
+% Copyright (C) 2005 Ovidiu Gheorghies
+%
+% This program 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 2
+% of the License, or (at your option) any later version.
+%
+% This program 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 this program; if not, write to the Free Software
+% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+input metauml;
+
+beginfig(1);
+ pair za, zb;
+ za = (10,10);
+ zb = (10,-5);
+ path cool;
+ cool := za .. za+(20,10) ..
+ zb+(20,-20) ..
+ zb+(-10,-30) -- zb;
+ link(aggregationUni)(cool);
+endfig;
+
+beginfig(2);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ B.sw = A.ne + (10,10);
+
+ drawObjects(A, B);
+
+ link(aggregationUni)
+ (rpathManhattanX(A.e, B.s));
+ link(inheritance)
+ (pathManhattanY(A.n, B.w));
+endfig;
+
+beginfig(3);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ B.sw = A.ne + (10,10);
+
+ drawObjects(A, B);
+
+ stepX:=60;
+ link(aggregationUni)
+ (pathStepX(A.e, B.e, stepX));
+
+ stepY:=20;
+ link(inheritance)
+ (pathStepY(B.n, A.n, stepY));
+
+ pair X,Y;
+ X := A.se + (0,-30);
+ Y := X + (stepX, 0);
+ draw A.se -- X dashed evenly;
+ draw (xpart Y, ypart A.e) -- Y dashed evenly;
+ drawdblarrow X + (0,15) -- Y + (0,15);
+ label.top(btex stepX etex, .5[X,Y]);
+
+ pair X,Y;
+ X := B.n + (-70,-0);
+ Y := X + (0, stepY);
+
+ draw B.n -- X dashed evenly;
+ draw B.n + (0,stepY) -- Y dashed evenly;
+ drawdblarrow X + (15,0) -- Y + (15,0);
+ label.lft(btex stepY etex, .5[X,Y]);
+endfig;
+
+% horizontal, vertical
+beginfig(4);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")("b")();
+ Class.C("C")("foo: int")();
+
+ B.sw = A.se + (30,5);
+ C.sw = A.nw + (0, 30);
+
+ drawObjects(A, B, C);
+
+ untilX := B.left;
+ drawRelation(association)
+ (pathHorizontal(A.e, untilX));
+
+ draw B.nw -- B.sw + (0,-10) dashed evenly;
+ label.bot(btex untilX etex, B.sw + (0,-10));
+
+ untilY:= C.bottom;
+ drawRelation(association)(pathVertical(A.n, untilY));
+
+ draw C.sw -- C.sw + (-20,0) dashed evenly;
+ label.lft(btex untilY etex, C.sw + (-20,-0));
+
+endfig;
+
+beginfig(5);
+ save A,B;
+ Activity.A("A");
+ Activity.B("B");
+
+ B.nw = A.ne + (40,30);
+ drawObjects(A,B);
+
+ z = A.se + (30, -10);
+ link(transition)(pathCut(A, B)
+ (A.c -- z -- B.c));
+endfig;
+
+beginfig(6);
+ save A,B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ B.nw = A.ne + (20,30);
+ drawObjects(A,B);
+
+ clink(inheritance)(A, B);
+endfig;
+
+end