version 1.12, 2005/05/18 03:27:00 |
version 1.15, 2011/08/11 06:25:06 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/plot/plotp.c,v 1.11 2002/07/10 09:13:53 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/plot/plotp.c,v 1.14 2011/08/10 04:51:58 saito Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
|
|
static POINT oldpos; |
static POINT oldpos; |
#endif |
#endif |
|
|
|
#if defined(INTERVAL) |
|
unsigned long GetColor(Display *, char *); |
|
|
|
unsigned long GetColor(Display *dis, char *color_name) |
|
{ |
|
Colormap cmap; |
|
XColor near_color, true_color; |
|
|
|
cmap = DefaultColormap( dis, 0 ); |
|
XAllocNamedColor( dis, cmap, color_name, &near_color, &true_color ); |
|
return( near_color.pixel ); |
|
} |
|
|
|
void area_print(DISPLAY *display, int **mask, struct canvas *can, int GXcode) |
|
{ |
|
int ix, iy; |
|
XImage *image; |
|
unsigned long color, black, white; |
|
int wc; |
|
|
|
flush(); |
|
black = GetColor(display, "black"); |
|
white = GetColor(display, "white"); |
|
image = XGetImage(display, can->pix, 0, 0, can->width, can->height, |
|
-1, ZPixmap); |
|
for(iy = 0; iy < can->height; iy++){ |
|
for(ix = 0; ix < can->width; ix++){ |
|
color = XGetPixel(image, ix, iy); |
|
if (color == white) wc = -1; |
|
else if (color == black) wc = 0; |
|
else wc = 1; |
|
if ( wc != 0 ) {//XPutPixel(image,ix,iy,black); |
|
if ( mask[iy][ix] == 0 ) XPutPixel(image, ix, iy, black); |
|
else { |
|
switch (GXcode) { |
|
case 3: /* copy case */ |
|
if (mask[iy][ix] == 1 ) XPutPixel(image, ix, iy, can->color); |
|
else XPutPixel(image, ix, iy, BackPixel); |
|
break; |
|
case 1: /* and case */ |
|
if ((mask[iy][ix] == 1) && (wc == 1)) |
|
XPutPixel(image, ix, iy, can->color); |
|
else XPutPixel(image, ix, iy, BackPixel); |
|
break; |
|
case 7: /* or case */ |
|
if ((mask[iy][ix] == 1) || (wc == 1)) |
|
XPutPixel(image, ix, iy, can->color); |
|
else XPutPixel(image, ix, iy, BackPixel); |
|
break; |
|
case 6: /* xor case */ |
|
if ((mask[iy][ix] == 1) ^ (wc == 1)) |
|
XPutPixel(image, ix, iy, can->color); |
|
else XPutPixel(image, ix, iy, BackPixel); |
|
break; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
XPutImage(display,can->pix,drawGC,image,0,0,0,0,can->width, can->height); |
|
count_and_flush(); |
|
flush(); |
|
} |
|
#endif |
|
|
void if_print(DISPLAY *display,double **tab,struct canvas *can) |
void if_print(DISPLAY *display,double **tab,struct canvas *can) |
{ |
{ |
int ix,iy,width,height; |
int ix,iy,width,height; |
Line 203 void memory_con_print(double **tab,struct canvas *can, |
|
Line 268 void memory_con_print(double **tab,struct canvas *can, |
|
for ( pa = parray->pos, len = parray->length, ix = 0; ix < len; ix++ ) { |
for ( pa = parray->pos, len = parray->length, ix = 0; ix < len; ix++ ) { |
MEMORY_DRAWPOINT(array,scan_len,XC(pa[ix]),YC(pa[ix])); |
MEMORY_DRAWPOINT(array,scan_len,XC(pa[ix]),YC(pa[ix])); |
} |
} |
|
} |
|
|
|
void memory_print(struct canvas *can,BYTEARRAY *bytes) |
|
{ |
|
int len,scan_len,i; |
|
POINT *pa; |
|
char *array; |
|
|
|
/* scan_len = byte length of the scan line */ |
|
scan_len = (can->width+7)/8; |
|
MKBYTEARRAY(*bytes,scan_len*can->height); |
|
array = BDY(*bytes); |
|
|
|
len = can->pa[0].length; |
|
pa = can->pa[0].pos; |
|
for ( i = 0; i < len; i++ ) { |
|
MEMORY_DRAWPOINT(array,scan_len,pa[i].x,pa[i].y); |
|
} |
} |
} |
|
|
void qif_print(DISPLAY *display,char **tab,struct canvas *can) |
void qif_print(DISPLAY *display,char **tab,struct canvas *can) |