Source PostScript (solidputcolor.pps)

Retour Texte non formaté
%% syntaxe : solid i string solidputfcolor /solidputfcolor { 3 dict begin /str exch def /i exch def /solid exch def /FC solid solidgetfcolors def i FC length lt { FC i str put } if end } def %% syntaxe : solid solidgetincolors --> array /solidgetincolors { 3 dict begin /solid exch def solid issolid not { (Error : mauvais type d argument dans solidgetincolors) == quit } if solid solidwithinfaces { /fcol solid solidgetfcolors def /IO solid solidgetinouttable def /n1 IO 2 get def /n2 IO 3 get def /n n2 n1 sub 1 add def fcol n1 n getinterval } { [] } ifelse end } def %% syntaxe : solid solidgetoutcolors --> array /solidgetoutcolors { 3 dict begin /solid exch def solid issolid not { (Error : mauvais type d argument dans solidgetoutcolors) == quit } if /fcol solid solidgetfcolors def /IO solid solidgetinouttable def /n1 IO 0 get def /n2 IO 1 get def /n n2 n1 sub 1 add def fcol n1 n getinterval end } def %% syntaxe : solid array solidputincolors --> - /solidputincolors { 4 dict begin /newcolorstable exch def /solid exch def solid issolid not { (Error : mauvais type d argument dans solidputincolors) == quit } if /n newcolorstable length def n solid solidnombreinfaces ne { (Error : mauvaise longueur de tableau dans solidputincolors) == quit } if n 0 ne { /FC solid solidgetfcolors def /IO solid solidgetinouttable def /n1 IO 2 get def FC n1 newcolorstable putinterval } if end } def %% syntaxe : solid array solidputoutcolors --> - /solidputoutcolors { 4 dict begin /newcolorstable exch def /solid exch def solid issolid not { (Error : mauvais type d argument dans solidputoutcolors) == quit } if /n newcolorstable length def n solid solidnombreoutfaces ne { (Error : mauvaise longueur de tableau dans solidputoutcolors) == quit } if n 0 ne { /FC solid solidgetfcolors def /IO solid solidgetinouttable def /n1 IO 0 get def FC n1 newcolorstable putinterval } if end } def %% syntaxe : solid str outputcolors /outputcolors { 5 dict begin /color exch def /solid exch def solid issolid not { (Error : mauvais type d argument dans inoutputcolors) == quit } if /n solid solidnombreoutfaces def solid [ n {color} repeat ] solidputoutcolors end } def %% syntaxe : solid str inputcolors /inputcolors { 5 dict begin /color exch def /solid exch def solid issolid not { (Error : mauvais type d argument dans inoutputcolors) == quit } if /n solid solidnombreinfaces def solid [ n {color} repeat ] solidputincolors end } def %% syntaxe : solid str1 str2 inoutputcolors /inoutputcolors { 5 dict begin /colout exch def /colin exch def /solid exch def solid colin inputcolors solid colout outputcolors end } def %% syntaxe : solid array solidputoutcolors --> - /solidputoutcolors { 4 dict begin /newcolorstable exch def /solid exch def solid issolid not { (Error : mauvais type d argument dans solidputoutcolors) == quit } if /n newcolorstable length def n solid solidnombreoutfaces ne { (Error : mauvaise longueur de tableau dans solidputoutcolors) == quit } if n 0 ne { /FC solid solidgetfcolors def /IO solid solidgetinouttable def /n1 IO 0 get def FC length n n1 add lt { solid newcolorstable solidputfcolors } { FC n1 newcolorstable putinterval } ifelse } if end } def /solidputcolors { 3 dict begin 2 copy pop isstring { inoutputcolors } { outputcolors } ifelse end } def