DEFINITION MODULE Arrows;
(*******************************************************************
Module Arrows (Version 1.0)
Copyright (c) 1989-2006 by Andreas Fischlin and ETH Zurich.
Purpose Drawing of arrows.
Remarks --
Programming
o Design
Andreas Fischlin 19/12/1989
o Implementation
Andreas Fischlin 19/12/1989
ETH Zurich
Systems Ecology
CHN E 35.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
URLs:
<mailto:RAMSES@env.ethz.ch>
<http://www.sysecol.ethz.ch>
<http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
Last revision of definition: 19/12/1989 AF
*******************************************************************)
PROCEDURE DrawArrow (xb,yb,xe,ye: INTEGER;
labelAtBeg,labelAtEnd: ARRAY OF CHAR;
labelOnRightSide: BOOLEAN);
(*
Draws an arrow from point [xb,yb] to point [xe,ye]. Two labels,
labelAtBeg at the begin, labelAtEnd at the end of the arrow,
will be written on one side of the arrow as given by flag
lableOnRightSide. The properties of the arrow are determined
by the current settings.
*)
PROCEDURE SetArrowProperties (doubleArrow, leftHalfHead, rightHalfHead,
filledHead: BOOLEAN;
arrhle: CARDINAL; alpha: INTEGER);
PROCEDURE GetArrowProperties (VAR doubleArrow, leftHalfHead, rightHalfHead,
filledHead: BOOLEAN;
VAR arrhle: CARDINAL; VAR alpha: INTEGER);
(*
Sets or returns the properties with which arrows are to be
drawn. doubleArrow defines whether arrow heads are to be drawn
on both sides of the arrow (default is FALSE). leftHalfHead,
rightHalfHead specify whether the arrow head consists only of
one arc (defaults are TRUE; Note if both flags are FALSE no
head is drawn at all). filledHead specifies whether an arrow
head consists not just of an arc but will be filled (default is
FALSE). arrhle is the length of the head arc in pixels
(default is 4), alpha the angle between the line [xb,yb]
[xe,ye] and the head arcs in degrees (default is 23°).
*)
END Arrows.