summaryrefslogtreecommitdiff
path: root/metapost/context/base/mpiv/mp-idea.mpiv
blob: 462d9755359b475943d676ddaab951907227ec87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
% 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) ;