126 void *
const dataptr,
136 pictsize = (double) (symbptr->
nodenbr + 1);
138 fprintf (stream,
"%%!PS-Adobe-2.0 EPSF-2.0\n");
139 fprintf (stream,
"%%%%Title: pastixSymbolmatrix (%ld,%ld,%ld)\n",
141 fprintf (stream,
"%%%%Creator: pastixSymbolDraw (LaBRI, Universite Bordeaux I)\n");
142 fprintf (stream,
"%%%%CreationDate: %s", ctime (&picttime));
143 fprintf (stream,
"%%%%BoundingBox: 0 0 %ld %ld\n",
146 fprintf (stream,
"%%%%Pages: 0\n");
147 fprintf (stream,
"%%%%EndComments\n");
148 fprintf (stream,
"/c { 4 2 roll pop pop newpath 2 copy 2 copy moveto dup lineto dup lineto closepath fill } bind def\n");
149 fprintf (stream,
"/b { 4 copy 2 index exch moveto lineto dup 3 index lineto exch lineto closepath fill pop } bind def\n");
150 fprintf (stream,
"/r { setrgbcolor } bind def\n");
151 fprintf (stream,
"/g { setgray } bind def\n");
153 fprintf (stream,
"gsave\n");
154 fprintf (stream,
"0 setlinecap\n");
155 fprintf (stream,
"%f dup scale\n",
157 fprintf (stream,
"[ 1 0 0 -1 0 %d ] concat\n",
160 fprintf (stream,
"0 0\n");
161 for (cblknum = 0, bloknum = 0; cblknum < symbptr->
cblknbr; cblknum ++) {
168 if (diagfunc != NULL)
169 diagfunc (symbptr, &symbptr->
bloktab[bloknum], dataptr, coloval);
170 if ((coloval[0] == coloval[1]) &&
171 (coloval[1] == coloval[2]))
172 fprintf (stream,
"%.2g g ",
175 fprintf (stream,
"%.2g %.2g %.2g r \n",
176 (
float) coloval[0], (
float) coloval[1], (
float) coloval[2]);
178 fprintf (stream,
"%ld\t%ld\tc\n",
183 bloknum < blokend; bloknum ++) {
189 if ((offdfunc == NULL) || (offdfunc (symbptr, &symbptr->
bloktab[bloknum], dataptr, colbval) != 0)) {
190 if ((coloval[0] != colbval[0]) ||
191 (coloval[1] != colbval[1]) ||
192 (coloval[2] != colbval[2])) {
193 coloval[0] = colbval[0];
194 coloval[1] = colbval[1];
195 coloval[2] = colbval[2];
197 if ((coloval[0] == coloval[1]) &&
198 (coloval[1] == coloval[2]))
199 fprintf (stream,
"%.2g g ",
202 fprintf (stream,
"%.2g %.2g %.2g r \n",
203 (
float) coloval[0], (
float) coloval[1], (
float) coloval[2]);
206 fprintf (stream,
"%ld\t%ld\tb\n",
212 fprintf (stream,
"pop pop\n");
213 o = fprintf (stream,
"grestore\nshowpage\n");
215 return ((o != EOF) ? 0 : 1);
int pastixSymbolDrawFunc(const symbol_matrix_t *const symbptr, int(*diagfunc)(const symbol_matrix_t *const, const symbol_blok_t *const, void *const, float *const), int(*offdfunc)(const symbol_matrix_t *const, const symbol_blok_t *const, void *const, float *const), void *const dataptr, FILE *const stream)
Export the symbol structure in a PostScript format.