%% syntaxe : solid str writesolidfile -> -
/writesolidfile {
10 dict begin
/str exch def
/solid exch def
solid issolid not {
(Error : mauvais type d argument dans writesolidfile) ==
quit
} if
str (-sommets.dat) append (w) file /lefichiersommets exch def
str (-faces.dat) append (w) file /lefichierfaces exch def
str (-couleurs.dat) append (w) file /lefichiercouleurs exch def
str (-io.dat) append (w) file /lefichierio exch def
/S solid solidgetsommets def
0 1 S length 3 idiv 1 sub {
/i exch def
solid i solidgetsommet
/z exch def
/y exch def
/x exch def
lefichiersommets x chaine cvs writestring
lefichiersommets 32 write %% espace
lefichiersommets y chaine cvs writestring
lefichiersommets 32 write %% espace
lefichiersommets z chaine cvs writestring
lefichiersommets 10 write %% CR
} for
lefichiersommets closefile
/F solid solidgetfaces def
0 1 F length 1 sub {
/i exch def
/Fi solid i solidgetface def
lefichierfaces 91 write %% [
0 1 Fi length 1 sub {
/j exch def
lefichierfaces Fi j get chaine cvs writestring
lefichierfaces 32 write %% espace
} for
lefichierfaces 93 write %% ]
lefichierfaces 10 write %% CR
} for
lefichierfaces closefile
/C solid solidgetfcolors def
0 1 C length 1 sub {
/i exch def
lefichiercouleurs 40 write %% (
lefichiercouleurs C i get writestring
lefichiercouleurs 41 write %% )
lefichiercouleurs 10 write %% CR
} for
lefichiercouleurs closefile
/IO solid solidgetinouttable def
0 1 3 {
/i exch def
lefichierio IO i get chaine cvs writestring
lefichierio 32 write %% space
} for
lefichierio closefile
end
} def
|