% MetaUML, a MetaPost library for typesetting exquisite UML diagrams. % 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. if known _metauml_class_relations_mp: expandafter endinput fi; _metauml_class_relations_mp:=1; defaultRelationHeadWidth := 25; defaultRelationHeadHeight := 10; vardef AssociationInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = 0; @#heightB = 0; @#drawMethodB = "drawNothing"; @#drawMethod = "drawLine"; enddef; vardef AssociationUniInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawArrow"; @#drawMethod = "drawLine"; enddef; vardef InheritanceInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawTriangle"; @#drawMethod = "drawLine"; enddef; vardef AggregationInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawDiamond"; @#drawMethod = "drawLine"; enddef; vardef AggregationUniInfo@# = LinkInfo@#; @#widthA = defaultRelationHeadWidth; @#heightA = defaultRelationHeadHeight; @#drawMethodA = "drawArrow"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawDiamond"; @#drawMethod = "drawLine"; enddef; vardef CompositionInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawDiamondBlack"; @#drawMethod = "drawLine"; enddef; vardef CompositionUniInfo@# = LinkInfo@#; @#widthA = defaultRelationHeadWidth; @#heightA = defaultRelationHeadHeight; @#drawMethodA = "drawArrow"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawDiamondBlack"; @#drawMethod = "drawLine"; enddef; vardef DashedLinkInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = 0; @#heightB = 0; @#drawMethodB = "drawNothing"; @#drawMethod = "drawLineDashed"; enddef; vardef DependencyInfo@# = LinkInfo@#; @#widthA = 0; @#heightA = 0; @#drawMethodA = "drawNothing"; @#widthB = defaultRelationHeadWidth; @#heightB = defaultRelationHeadHeight; @#drawMethodB = "drawArrow"; @#drawMethod = "drawLineDashed"; enddef; AssociationInfo.association; AssociationUniInfo.associationUni; InheritanceInfo.inheritance; AggregationInfo.aggregation; AggregationUniInfo.aggregationUni; CompositionInfo.composition; CompositionUniInfo.compositionUni; DashedLinkInfo.dashedLink; DependencyInfo.dependency; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Deprecated, kept to support code using the older API. % Using the generic formulation involving link, e.g. % link(association)(A.n--B.s) is preferable. % link and clink are defined in metauml_links % vardef drawRelation(text iLink)(expr myPath)= link(iLink)(myPath); enddef;