From 778f381ba6a448ab00d67994a412dd4226d43238 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Fri, 8 Oct 2021 20:46:55 +0200 Subject: 2021-10-08 20:07:00 --- metapost/context/base/mpxl/mp-luas.mpxl | 4 ++-- metapost/context/base/mpxl/mp-tool.mpxl | 36 ++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 9 deletions(-) (limited to 'metapost') diff --git a/metapost/context/base/mpxl/mp-luas.mpxl b/metapost/context/base/mpxl/mp-luas.mpxl index 24a2fc8fe..18b4391f2 100644 --- a/metapost/context/base/mpxl/mp-luas.mpxl +++ b/metapost/context/base/mpxl/mp-luas.mpxl @@ -266,8 +266,8 @@ newscriptindex mfid_utfsub ; mfid_utfsub := scriptindex "utfsub" ; % def utflen = runscript mfid_utflen enddef ; % def utfsub = runscript mfid_utfsub enddef ; -vardef utfnum expr s = runscript mfid_utfnum s enddef ; % str -vardef utflen expr s = runscript mfid_utflen s enddef ; % str +vardef utfnum(expr s) = runscript mfid_utfnum s enddef ; % str +vardef utflen(expr s) = runscript mfid_utflen s enddef ; % str vardef utfsub(text t) = runscript mfid_utfsub t enddef ; % str, first, (optional) last permanent utfnum, utflen, utfsub ; diff --git a/metapost/context/base/mpxl/mp-tool.mpxl b/metapost/context/base/mpxl/mp-tool.mpxl index a318c39ca..31be9707a 100644 --- a/metapost/context/base/mpxl/mp-tool.mpxl +++ b/metapost/context/base/mpxl/mp-tool.mpxl @@ -545,21 +545,30 @@ def mfun_tool_striped_number_action text extra = enddef ; def mfun_tool_striped_set_options(expr option) = - save isinner, swapped ; - boolean isinner, swapped ; - if option = 1 : + save isinner, swapped, isdrawn ; + boolean isinner, swapped, isdrawn ; + if option = 0 : + isdrawn := true; + isinner := true ; + swapped := false ; + elseif option = 1 : + isdrawn := false ; isinner := false ; swapped := false ; elseif option = 2 : + isdrawn := false ; isinner := true ; swapped := false ; elseif option = 3 : + isdrawn := false ; isinner := false ; swapped := true ; elseif option = 4 : + isdrawn := false ; isinner := true ; swapped := true ; else : + isdrawn := false ; isinner := false ; swapped := false ; fi ; @@ -595,7 +604,9 @@ vardef mfun_tool_striped_number(expr option, p, asked_n, asked_slot) text extra endfor ; fi ; ) ; - if swapped : + if isdrawn : + addto currentpicture also pattern ; + elseif swapped : addto currentpicture also shape ; addto currentpicture also pattern ; else : @@ -606,10 +617,18 @@ vardef mfun_tool_striped_number(expr option, p, asked_n, asked_slot) text extra ) enddef ; +% def mfun_tool_striped_angle_action text extra = +% for i = minimum -.5used_gap step used_gap until maximum : +% draw (minimum,i) -- (maximum,i) extra ; +% endfor ; +% currentpicture := currentpicture rotated used_angle ; +% enddef ; + def mfun_tool_striped_angle_action text extra = for i = minimum -.5used_gap step used_gap until maximum : - draw (minimum,i) -- (maximum,i) extra ; + nodraw (minimum,i) -- (maximum,i) extra ; endfor ; + dodraw origin ; currentpicture := currentpicture rotated used_angle ; enddef ; @@ -622,7 +641,8 @@ vardef mfun_tool_striped_angle(expr option, p, asked_angle, asked_gap) text extr used_angle := if asked_angle = 0 : stripe_angle else : asked_angle fi ; used_gap := if asked_gap = 0 : stripe_gap else : asked_gap fi ; shape := image(draw p) ; - centrum := center shape ; + % centrum := center shape ; + centrum := llcorner shape ; shape := shape shifted - centrum ; mask := shape rotated used_angle ; maximum := max (xpart llcorner mask, xpart urcorner mask, ypart llcorner mask, ypart urcorner mask) ; @@ -646,7 +666,9 @@ vardef mfun_tool_striped_angle(expr option, p, asked_angle, asked_gap) text extr endfor ; fi ; ) ; - if swapped : + if isdrawn : + addto currentpicture also pattern ; + elseif swapped : addto currentpicture also shape ; addto currentpicture also pattern ; else : -- cgit v1.2.3