summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp')
-rw-r--r--Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp143
1 files changed, 143 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp b/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp
new file mode 100644
index 00000000000..a6c502f147b
--- /dev/null
+++ b/Master/texmf-dist/doc/metapost/metauml/manual/fig/paths_man.mp
@@ -0,0 +1,143 @@
+% 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);
+ save A, B;
+ Class.A("A")("foo:int")("bar()");
+ Class.B("B")()();
+
+ A.nw = (0,0);
+ B.s = A.ne + (30,30);
+
+ Class_draw.A;
+ Class_draw.B;
+
+ drawRelation(aggregationUni)
+ (A.n ..(30,30)..B.w);
+ path cool;
+ cool := A.e .. A.e+(20,10) ..
+ B.s+(20,-40) .. B.s+(-10,-30)
+ -- B.s;
+ drawRelation(inheritance)(cool);
+endfig;
+
+beginfig(2);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ A.nw = (0,0);
+ B.sw = A.ne + (10,10);
+
+ Class_draw.A;
+ Class_draw.B;
+
+ drawRelation(aggregationUni)
+ (pathManhattanX(A.e, B.s));
+ drawRelation(inheritance)
+ (pathManhattanY(A.n, B.w));
+endfig;
+
+beginfig(3);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ A.nw = (0,0);
+ B.sw = A.ne + (10,10);
+
+ Class_draw.A;
+ Class_draw.B;
+
+ stepX:=60;
+ drawRelation(aggregationUni)
+ (pathStepX(A.e, B.e, stepX));
+
+ stepY:=20;
+ drawRelation(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;
+
+beginfig(4);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")("a")();
+
+ A.nw = (0,0);
+ B.sw = A.se + (30,5);
+
+ Class_draw.A;
+ Class_draw.B;
+
+ 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));
+endfig;
+
+beginfig(5);
+ save A, B;
+ Class.A("A")()();
+ Class.B("B")("a")("foo()");
+
+ A.nw = (0,0);
+ B.sw = A.ne + (-20,20);
+
+ Class_draw.A;
+ Class_draw.B;
+
+ untilY:= B.bottom;
+ drawRelation(association)
+ (pathVertical(A.n, untilY));
+
+ draw B.sw -- B.sw + (-20,0) dashed evenly;
+ label.lft(btex untilY etex, B.sw + (-20,-0));
+endfig;
+
+beginfig(6);
+ save A,B;
+ Class.A("A")()();
+ Class.B("B")()();
+
+ B.nw = A.ne + (40,30);
+ drawObjects(A,B);
+
+ link(inheritance)(pathCut(A,B)(A.c -- B.c));
+endfig;
+
+end