summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/context/base/mp-shap.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/metapost/context/base/mp-shap.mp')
-rw-r--r--Master/texmf-dist/metapost/context/base/mp-shap.mp307
1 files changed, 0 insertions, 307 deletions
diff --git a/Master/texmf-dist/metapost/context/base/mp-shap.mp b/Master/texmf-dist/metapost/context/base/mp-shap.mp
deleted file mode 100644
index 0f5fe431d99..00000000000
--- a/Master/texmf-dist/metapost/context/base/mp-shap.mp
+++ /dev/null
@@ -1,307 +0,0 @@
-%D \module
-%D [ file=mp-shap.mp,
-%D version=2000.05.31,
-%D title=\CONTEXT\ \METAPOST\ graphics,
-%D subtitle=shapes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
-%C details.
-
-if unknown context_tool : input mp-tool ; fi ;
-if known context_shap : endinput ; fi ;
-
-boolean context_shap ; context_shap := true ;
-
-vardef some_shape_path (expr type) =
-
- begingroup ;
-
- save border, xradius, yradius,
- normal, mirror, rotate,
- lc, rc, tc, bc, ll, lr, ur, ul,
- llx, lrx, urx, ulx, lly, lry, ury, uly ;
-
- path border ;
-
- xradius := .15 ; xxradius := .10 ;
- yradius := .15 ; yyradius := .10 ;
-
- pair ll ; ll := llcorner (unitsquare shifted (-.5,-.5)) ;
- pair lr ; lr := lrcorner (unitsquare shifted (-.5,-.5)) ;
- pair ur ; ur := urcorner (unitsquare shifted (-.5,-.5)) ;
- pair ul ; ul := ulcorner (unitsquare shifted (-.5,-.5)) ;
-
- pair llx ; llx := ll shifted (xradius,0) ;
- pair lly ; lly := ll shifted (0,yradius) ;
-
- pair lrx ; lrx := lr shifted (-xradius,0) ;
- pair lry ; lry := lr shifted (0,yradius) ;
-
- pair urx ; urx := ur shifted (-xradius,0) ;
- pair ury ; ury := ur shifted (0,-yradius) ;
-
- pair ulx ; ulx := ul shifted (xradius,0) ;
- pair uly ; uly := ul shifted (0,-yradius) ;
-
- pair llxx ; llxx := ll shifted (xxradius,0) ;
- pair llyy ; llyy := ll shifted (0,yyradius) ;
-
- pair lrxx ; lrxx := lr shifted (-xxradius,0) ;
- pair lryy ; lryy := lr shifted (0,yyradius) ;
-
- pair urxx ; urxx := ur shifted (-xxradius,0) ;
- pair uryy ; uryy := ur shifted (0,-yyradius) ;
-
- pair ulxx ; ulxx := ul shifted (xxradius,0) ;
- pair ulyy ; ulyy := ul shifted (0,-yyradius) ;
-
- pair lc ; lc := ll shifted (0,.5) ;
- pair rc ; rc := lr shifted (0,.5) ;
- pair tc ; tc := ul shifted (.5,0) ;
- pair bc ; bc := ll shifted (.5,0) ;
-
- def mirror (expr p) =
- p rotatedaround(origin,180)
- enddef ;
-
- def normal (expr p ) =
- p
- enddef ;
-
- def rotate (expr p) =
- p rotated 45
- enddef ;
-
- if type= 0 :
- border := normal (origin--cycle) ;
-
- elseif type= 5 :
- border := normal (llx--lrx{right}...rc...{left}urx--ulx{left}...lc...{right}cycle) ;
- elseif type= 6 :
- border := normal (ll--lrx{right}...rc...{left}urx--ul--cycle) ;
- elseif type= 7 :
- border := mirror (ll--lrx{right}...rc...{left}urx--ul--cycle) ;
- elseif type= 8 :
- border := normal (lr--ury{up}...tc...{down}uly--ll--cycle) ;
- elseif type= 9 :
- border := mirror (lr--ury{up}...tc...{down}uly--ll--cycle) ;
- elseif type=10 :
- border := normal (ll--lr--ur--ul--ll--ur--ul--ll--cycle) ;
- elseif type=11 :
- border := normal (ll--lr--ur--ul--ll--lr--ul--ll--cycle) ;
- elseif type=12 :
- border := normal (ll--lrx--ur--ulx--cycle) ;
- elseif type=13 :
- border := normal (llx--lr--urx--ul--cycle) ;
- elseif type=14 :
- border := normal (lly--bc--lry--ury--tc--uly--cycle) ;
- elseif type=15 :
- border := normal (llx--lrx--rc--urx--ulx--lc--cycle) ;
- elseif type=16 :
- border := normal (ll--lrx--rc--urx--ul--cycle) ;
- elseif type=17 :
- border := mirror (ll--lrx--rc--urx--ul--cycle) ;
- elseif type=18 :
- border := normal (lr--ury--tc--uly--ll--cycle) ;
- elseif type=19 :
- border := mirror (lr--ury--tc--uly--ll--cycle) ;
- elseif type=20 :
- border := normal (ll--lr--ur--ul--ll--llxx--ulxx--ul--ll--
- lr--ur--urxx--lrxx--cycle) ;
- elseif type=21 :
- border := normal (ul--ll--lr--ur--ul--ulyy--uryy--ur--ul--
- ll--lr--lryy--llyy--cycle) ;
- elseif type=22 :
- border := normal (ll--lrx--lry--ur--ulx--uly--cycle) ;
- elseif type=23 :
- border := normal (llx--lr--ury--urx--ul--lly--cycle) ;
- elseif type=24 :
- border := normal (ll--lr--ur--ul--cycle) ;
- elseif type=25 :
- border := normal (llx--lrx--lry--ury--urx--ulx--uly--lly--cycle) ;
- elseif type=26 :
- border := normal (ll--lrx--lry--ur--ul--cycle) ;
- elseif type=27 :
- border := mirror (ll--lr--ury--urx--ul--cycle) ;
- elseif type=28 :
- border := normal (ll--lr--ury--urx--ul--cycle) ;
- elseif type=29 :
- border := mirror (ll--lrx--lry--ur--ul--cycle) ;
- elseif type=30 :
- border := rotate (bc{right}...{up}rc...tc{left}...{down}lc...{right}bc &
- bc--tc & tc{left}..{down}lc & lc--rc &
- rc{up}..tc{left}...{down}lc...{right}bc & cycle) ;
- elseif type=31 :
- border := normal (bc{right}...{up}rc...tc{left}...{down}lc...{right}bc &
- bc--tc & tc{left}..{down}lc & lc--rc &
- rc{up}..tc{left}...{down}lc...{right}bc & cycle) ;
- elseif type=32 :
- border := normal (ll{right}...{right}lry--ur--ul--ll--cycle) ;
- elseif type=33 :
- border := normal (ll{right}...{right}lry--ur--ul--ll--cycle
- --ul--ulx--ulx shifted(0,yyradius)
- --ur shifted(yyradius,yyradius)
- --lry shifted(yyradius,yyradius)
- --lry shifted(0,yyradius)
- --ur--ul--cycle ) ;
- elseif type=34 :
- border := normal (uly..tc..ury &
- ury..tc shifted (0,-2yradius)..uly &
- uly--lly &
- lly..bc..lry &
- lry--ury &
- ury..tc shifted (0,-2yradius)..uly & cycle ) ;
- elseif type=35 :
- border := normal (bc{right}...rc{up}...tc{left}...lc{down}...cycle) ;
- elseif type=36 :
- border := normal (ul--tc{right}..rc{down}..{left}bc--ll &
- ll..(xpart llx, ypart lc)..ul & cycle) ;
- elseif type=37 :
- border := mirror (ul--tc{right}..rc{down}..{left}bc--ll &
- ll..(xpart llx, ypart lc)..ul & cycle) ;
- elseif type=38 :
- border := normal (ll--lc{up}..tc{right}..{down}rc--lr &
- lr..(xpart bc, ypart lly)..ll & cycle) ;
- elseif type=39 :
- border := mirror (ll--lc{up}..tc{right}..{down}rc--lr &
- lr..(xpart bc, ypart lly)..ll & cycle) ;
- elseif type=40 :
- border := normal (ll--lr--ur--ul--ll--ur--ul--ll--lr--ul--ll--cycle) ;
- elseif type=41 :
- border := normal (ll--lr--ur--ul--ll--lr--rc--lc--ll--bc--tc--ul--ll & cycle) ;
- elseif type=42 :
- border := normal (ll--lr--origin shifted (+epsilon,0)--
- ur--ul--origin shifted (-epsilon,0)--cycle) ;
- elseif type=43 :
- border := normal (ll--ul--origin shifted (0,+epsilon)--
- ur--lr--origin shifted (0,-epsilon)--cycle) ;
- elseif type=45 :
- border := normal (bc--rc--tc--lc--cycle) ;
- elseif type=46 :
- border := normal (ll--ul--rc--cycle) ;
- elseif type=47 :
- border := mirror (ll--ul--rc--cycle) ;
- elseif type=48 :
- border := mirror (ul--ur--bc--cycle) ;
- elseif type=49 :
- border := normal (ul--ur--bc--cycle) ;
-
- elseif type=56 :
- border := normal (ll--lry--ury--ul--cycle) ;
- elseif type=57 :
- border := mirror (ll--lry--ury--ul--cycle) ;
- elseif type=58 :
- border := normal (ll--ulx--urx--lr--cycle) ;
- elseif type=59 :
- border := mirror (ll--ulx--urx--lr--cycle) ;
-
- elseif type=61 :
- border := normal (fullcircle scaled (1.5*yradius) xscaled (grid_height/grid_width)) ;
- elseif type=62 :
- border := normal (fullcircle scaled (2.0*yradius) xscaled (grid_height/grid_width)) ;
-
- elseif type=66 :
- border := normal (rc--origin shifted ( epsilon,0) --cycle &
- rc--origin --cycle ) ;
- elseif type=67 :
- border := normal (lc--origin shifted (-epsilon,0) --cycle &
- lc--origin --cycle ) ;
- elseif type=68 :
- border := normal (tc--origin shifted (0, epsilon) --cycle &
- tc--origin --cycle ) ;
- elseif type=69 :
- border := normal (bc--origin shifted (0,-epsilon) --cycle &
- bc--origin --cycle ) ;
-
- elseif type=75 :
- border := mirror (lly--lry--ury--uly--cycle) ;
- elseif type=76 :
- border := mirror (ll--lr--ur--uly--cycle) ;
- elseif type=77 :
- border := mirror (ll--lr--ury--ul--cycle) ;
- elseif type=78 :
- border := mirror (lly--lr--ur--ul--cycle) ;
- elseif type=79 :
- border := mirror (ll--lry--ur--ul--cycle) ;
-
- else :
- border := normal (origin--cycle) ;
- %border := normal (ll--lr--ur--ul--cycle) ;
- fi ;
-
- border
-
- endgroup
-
-enddef;
-
-def some_shape ( expr shape_type ,
- shape_width ,
- shape_height ,
- shape_linewidth ,
- shape_linecolor ,
- shape_fillcolor ) =
-
- path p ; p :=
- some_shape_path (shape_type)
- xscaled shape_width
- yscaled shape_height ;
-
- pickup pencircle scaled shape_linewidth ;
-
- fill p withcolor shape_fillcolor ;
- draw p withcolor shape_linecolor ;
-
-enddef ;
-
-vardef drawshape (expr t, p, lw, lc, fc) =
- save pp ;
- if t>1 : % normal shape
- path pp ;
- pp := some_shape_path(t) xyscaled(bbwidth(p), bbheight(p)) shifted center p ;
- fill pp withcolor fc ;
- draw pp withpen pencircle scaled lw withcolor lc ;
- elseif t=1 : % background only
- path pp ;
- pp := fullsquare xyscaled(bbwidth(p), bbheight(p)) shifted center p ;
- fill pp withcolor fc ;
- else : % dimensions only
- picture pp ; pp := nullpicture ;
- setbounds pp to fullsquare xyscaled(bbwidth(p), bbheight(p)) shifted center p ;
- draw pp ;
- fi ;
-enddef ;
-
-vardef drawline (expr t, p, lw, lc) =
- if (t>0) and (length(p)>1) :
- saveoptions ;
- drawoptions(withpen pencircle scaled lw withcolor lc) ;
- draw p ;
- if t = 1 :
- draw arrowheadonpath(p,1) ;
- elseif t = 2 :
- draw arrowheadonpath(reverse p,1) ;
- elseif t = 3 :
- for $ = p,reverse p : draw arrowheadonpath($,1) ; endfor ;
- elseif t = 11 :
- draw arrowheadonpath(p,1/2) ;
- elseif t = 12 :
- draw arrowheadonpath(reverse p,1/2) ;
- elseif t = 13 :
- for $=p,reverse p : draw arrowheadonpath($,1) ; endfor ;
- for $=p,reverse p : draw arrowheadonpath($,3/4) ; endfor ;
- elseif t = 21 :
- for $=1/5,1/2,4/5 : draw arrowheadonpath(p,$) ; endfor ;
- elseif t = 22 :
- for $=1/5,1/2,4/5 : draw arrowheadonpath(reverse p,$) ; endfor ;
- elseif t = 23 :
- for $=p,reverse p : draw arrowheadonpath($,1/4) ; endfor ;
- fi ;
- fi ;
-enddef ;
-
-endinput ;