% redpart (1,1,0,0) crashes % let normalredpart = redpart ; % let normalgreenpart = greenpart ; % let normalbluepart = bluepart ; % let normalcyanpart = cyanpart ; % let normalmagentapart = magentapart ; % let normalyellowpart = yellowpart ; % let normalblackpart = blackpart ; % vardef redpart expr p = if cmykcolor p : 1 - normalcyanpart p elseif rgbcolor p : normalredpart p else : p fi enddef ; % vardef greenpart expr p = if cmykcolor p : 1 - normalmagentapart p elseif rgbcolor p : normalgreenpart p else : p fi enddef ; % vardef bluepart expr p = if cmykcolor p : 1 - normalyellowpart p elseif rgbcolor p : normalbluepart p else : p fi enddef ; % vardef cyanpart expr p = if cmykcolor p : normalcyanpart p elseif rgbcolor p : 1 - normalredpart p else : p fi enddef ; % vardef magentapart expr p = if cmykcolor p : normalmagentapart p elseif rgbcolor p : 1 - normalgreenpart p else : p fi enddef ; % vardef yellowpart expr p = if cmykcolor p : normalyellowpart p elseif rgbcolor p : 1 - normalbluepart p else : p fi enddef ; % vardef blackpart expr p = if cmykcolor p : normalblackpart p elseif rgbcolor p : 0 else : p fi enddef ; vardef rcomponent expr p = if rgbcolor p : redpart p elseif cmykcolor p : 1 - cyanpart p else : p fi enddef ; vardef gcomponent expr p = if rgbcolor p : greenpart p elseif cmykcolor p : 1 - magentapart p else : p fi enddef ; vardef bcomponent expr p = if rgbcolor p : bluepart p elseif cmykcolor p : 1 - yellowpart p else : p fi enddef ; vardef ccomponent expr p = if cmykcolor p : cyanpart p elseif rgbcolor p : 1 - redpart p else : p fi enddef ; vardef mcomponent expr p = if cmykcolor p : magentapart p elseif rgbcolor p : 1 - greenpart p else : p fi enddef ; vardef ycomponent expr p = if cmykcolor p : yellowpart p elseif rgbcolor p : 1 - bluepart p else : p fi enddef ; vardef bcomponent expr p = if cmykcolor p : blackpart p elseif rgbcolor p : 0 else : p fi enddef ; vardef somecolor = (1,1,0,0) enddef ; fill OverlayBox withcolor (rcomponent somecolor,gcomponent somecolor,bcomponent somecolor) ; fill OverlayBox withcolor (ccomponent somecolor,mcomponent somecolor,ycomponent somecolor,bcomponent somecolor) ; % def newcolor text v = forsuffixes i=v : save i ; color i ; endfor ; enddef ; % def newnumeric text v = forsuffixes i=v : save i ; numeric i ; endfor ; enddef ; % def newboolean text v = forsuffixes i=v : save i ; boolean i ; endfor ; enddef ; % def newtransform text v = forsuffixes i=v : save i ; transform i ; endfor ; enddef ; % def newpath text v = forsuffixes i=v : save i ; path i ; endfor ; enddef ; % def newpicture text v = forsuffixes i=v : save i ; picture i ; endfor ; enddef ; % def newstring text v = forsuffixes i=v : save i ; string i ; endfor ; enddef ; % width := 10 ; % beginfig(1) ; % newpath width, height ; width := origin -- cycle ; % endfig ; % width := 10 ;