Changeset 13436
- Timestamp:
- May 18, 2007, 5:09:41 PM (19 years ago)
- Location:
- branches/kapa-mods-2007-05/Ohana/src
- Files:
-
- 16 edited
-
kapa2/src/CreateZoom16.c (modified) (6 diffs)
-
kapa2/src/CreateZoom24.c (modified) (5 diffs)
-
kapa2/src/CreateZoom32.c (modified) (5 diffs)
-
kapa2/src/CreateZoom8.c (modified) (6 diffs)
-
kapa2/src/JPEGit24.c (modified) (5 diffs)
-
kapa2/src/Remap16.c (modified) (6 diffs)
-
kapa2/src/Remap24.c (modified) (6 diffs)
-
kapa2/src/Remap32.c (modified) (5 diffs)
-
kapa2/src/Remap8.c (modified) (5 diffs)
-
kapa2/src/SetGraphData.c (modified) (2 diffs)
-
kapa2/src/UpdatePointer.c (modified) (4 diffs)
-
kapa2/src/bDrawOverlay.c (modified) (1 diff)
-
libkapa/src/KapaWindow.c (modified) (3 diffs)
-
libkapa/src/KiiPicture.c (modified) (1 diff)
-
opihi/dvo/dmt.c (modified) (1 diff)
-
opihi/lib.data/style_args.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CreateZoom16.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define XPIX(x,Rx,S) (x*S + Rx)3 # define ZPIX(value,Rz1,Rz2) (value*Rz1 - Rz2)4 2 # define FRAC(a) ((a) - (int)(a)) 3 4 static float slope = 1.0; 5 static float start = 0.0; 6 static int MaxValue = 255; 7 8 // XXX inline this if needed 9 static int PixelLookup(float value) { 10 int out; 11 out = MIN (MAX (slope * value - start, 0), MaxValue); 12 return (out); 13 } 5 14 6 15 void CreateZoom16 (KapaImageWidget *image, Graphic *graphic, double x, double y) { … … 9 18 int i_start, i_end, j_start, j_end; 10 19 int dropback; /* this is a bit of a kludge... */ 11 int dx, dy, DX, DY ;20 int dx, dy, DX, DY, pixelN; 12 21 double expand, zoomscale, Rx, Ry; 13 22 int expand_in, expand_out; 14 23 unsigned char *out_pix, *out_pix2, *data; 15 unsigned char*in_pix, *in_pix2;24 float *imdata, *in_pix, *in_pix2; 16 25 unsigned char pixel1[256], pixel2[256]; 17 26 unsigned char pixvalue1, pixvalue2; … … 37 46 back1 = 0x0000ff & back; 38 47 back2 = 0x0000ff & (back >> 8); 48 // define the color transform parameters 49 MaxValue = graphic[0].Npixels - 1; 50 if (image[0].range != 0.0) { 51 slope = graphic[0].Npixels / image[0].range; 52 start = graphic[0].Npixels * image[0].zero / image[0].range; 53 } else { 54 slope = 1.0; 55 start = image[0].zero; 56 } 39 57 40 58 zoomscale = MAX (5, image[0].expand + 5); … … 56 74 57 75 data = out_pix = (unsigned char *) image[0].zoom.data; 58 in_pix = (unsigned char *) (image[0].matrix.buffer) + DX*(int)MAX(Ry,0) + (int)MAX(Rx,0); 76 imdata = (float *) image[0].matrix.buffer; 77 in_pix = &imdata[DX*(int)MAX(Ry,0) + (int)MAX(Rx,0)]; 59 78 60 79 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 91 110 if (expand_out == 1) { 92 111 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix+=2) { 93 out_pix[0] = pixel1[*in_pix2]; 94 out_pix[1] = pixel2[*in_pix2]; 112 pixelN = PixelLookup(*in_pix2); 113 out_pix[0] = pixel1[pixelN]; 114 out_pix[1] = pixel2[pixelN]; 95 115 } 96 } 97 else { 116 } else { 98 117 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= 2*expand_out) { 99 pixvalue1 = pixel1[*in_pix2]; 100 pixvalue2 = pixel2[*in_pix2]; 118 pixelN = PixelLookup(*in_pix2); 119 pixvalue1 = pixel1[pixelN]; 120 pixvalue2 = pixel2[pixelN]; 101 121 out_pix2 = out_pix; 102 122 for (jj = 0; jj < expand_out; jj++, out_pix2+=2*(dx-expand_out)) { … … 129 149 } 130 150 131 image[0].zoom.pix = XCreateImage (graphic[0].display, graphic[0].visual, 16, ZPixmap, 0,132 image[0].zoom.data, image[0].zoom.dx, image[0].zoom.dy, 32, 0);151 image[0].zoom.pix = XCreateImage (graphic[0].display, graphic[0].visual, graphic[0].depth, ZPixmap, 0, 152 image[0].zoom.data, image[0].zoom.dx, image[0].zoom.dy, 16, 0); 133 153 134 154 } -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CreateZoom24.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define XPIX(x,Rx,S) (x*S + Rx)3 # define ZPIX(value,Rz1,Rz2) (value*Rz1 - Rz2)4 2 # define FRAC(a) ((a) - (int)(a)) 3 4 static float slope = 1.0; 5 static float start = 0.0; 6 static int MaxValue = 255; 7 8 // XXX inline this if needed 9 static int PixelLookup(float value) { 10 int out; 11 out = MIN (MAX (slope * value - start, 0), MaxValue); 12 return (out); 13 } 5 14 6 15 void CreateZoom24 (KapaImageWidget *image, Graphic *graphic, double x, double y) { … … 9 18 int i_start, i_end, j_start, j_end; 10 19 int dropback; /* this is a bit of a kludge... */ 11 int dx, dy, DX, DY ;20 int dx, dy, DX, DY, pixelN; 12 21 double expand, zoomscale, Rx, Ry; 13 22 int expand_in, expand_out; 14 23 unsigned char *out_pix, *out_pix2, *data; 15 unsigned char *in_pix,*in_pix2;24 float *imdata, *in_pix, *in_pix2; 16 25 unsigned char pixel1[256], pixel2[256], pixel3[256]; 17 26 unsigned char pixvalue1, pixvalue2, pixvalue3; … … 41 50 back3 = 0x0000ff & (back >> 16); 42 51 52 // define the color transform parameters 53 MaxValue = graphic[0].Npixels - 1; 54 if (image[0].range != 0.0) { 55 slope = graphic[0].Npixels / image[0].range; 56 start = graphic[0].Npixels * image[0].zero / image[0].range; 57 } else { 58 slope = 1.0; 59 start = image[0].zero; 60 } 61 43 62 zoomscale = MAX (5, image[0].expand + 5); 44 63 expand = 1 / zoomscale; … … 59 78 60 79 data = out_pix = (unsigned char *) image[0].zoom.data; 61 in_pix = (unsigned char *) (image[0].matrix.buffer) + DX*(int)MAX(Ry,0) + (int)MAX(Rx,0); 80 imdata = (float *) image[0].matrix.buffer; 81 in_pix = &imdata[DX*(int)MAX(Ry,0) + (int)MAX(Rx,0)]; 62 82 63 83 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 97 117 if (expand_out == 1) { 98 118 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix+=3) { 99 out_pix[0] = pixel1[*in_pix2]; 100 out_pix[1] = pixel2[*in_pix2]; 101 out_pix[2] = pixel3[*in_pix2]; 119 pixelN = PixelLookup(*in_pix2); 120 out_pix[0] = pixel1[pixelN]; 121 out_pix[1] = pixel2[pixelN]; 122 out_pix[2] = pixel3[pixelN]; 102 123 } 103 } 104 else { 124 } else { 105 125 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= 3*expand_out) { 106 pixvalue1 = pixel1[*in_pix2]; 107 pixvalue2 = pixel2[*in_pix2]; 108 pixvalue3 = pixel3[*in_pix2]; 126 pixelN = PixelLookup(*in_pix2); 127 pixvalue1 = pixel1[pixelN]; 128 pixvalue2 = pixel2[pixelN]; 129 pixvalue3 = pixel3[pixelN]; 109 130 out_pix2 = out_pix; 110 131 for (jj = 0; jj < expand_out; jj++, out_pix2+=3*(dx-expand_out)+extra) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CreateZoom32.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define XPIX(x,Rx,S) (x*S + Rx)3 # define ZPIX(value,Rz1,Rz2) (value*Rz1 - Rz2)4 2 # define FRAC(a) ((a) - (int)(a)) 3 4 static float slope = 1.0; 5 static float start = 0.0; 6 static int MaxValue = 255; 7 8 // XXX inline this if needed 9 static int PixelLookup(float value) { 10 int out; 11 out = MIN (MAX (slope * value - start, 0), MaxValue); 12 return (out); 13 } 5 14 6 15 void CreateZoom32 (KapaImageWidget *image, Graphic *graphic, double x, double y) { … … 9 18 int i_start, i_end, j_start, j_end; 10 19 int dropback; /* this is a bit of a kludge... */ 11 int dx, dy, DX, DY ;20 int dx, dy, DX, DY, pixelN; 12 21 double expand, zoomscale, Rx, Ry; 13 22 int expand_in, expand_out; 14 unsigned int *out_pix, *out_pix2 , *data;15 unsigned char *in_pix,*in_pix2;23 unsigned int *out_pix, *out_pix2; 24 float *imdata, *in_pix, *in_pix2; 16 25 unsigned long pixel[256], pixvalue; 17 26 unsigned long back; … … 28 37 } 29 38 back = graphic[0].back; 39 40 // define the color transform parameters 41 MaxValue = graphic[0].Npixels - 1; 42 if (image[0].range != 0.0) { 43 slope = graphic[0].Npixels / image[0].range; 44 start = graphic[0].Npixels * image[0].zero / image[0].range; 45 } else { 46 slope = 1.0; 47 start = image[0].zero; 48 } 30 49 31 50 zoomscale = MAX (5, image[0].expand + 5); … … 49 68 50 69 out_pix = (unsigned int *) image[0].zoom.data; 51 data = (unsigned int *) image[0].zoom.data;52 in_pix = (unsigned char *) (image[0].matrix.buffer) + DX*(int)MAX(Ry,0) + (int)MAX(Rx,0);70 imdata = (float *) image[0].matrix.buffer; 71 in_pix = &imdata[DX*(int)MAX(Ry,0) + (int)MAX(Rx,0)]; 53 72 54 73 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 81 100 if (expand_out == 1) { 82 101 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix++) { 83 out_pix[0] = pixel[*in_pix2]; 102 pixelN = PixelLookup(*in_pix2); 103 out_pix[0] = pixel[pixelN]; 84 104 } 85 105 } 86 106 else { 87 107 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= expand_out) { 88 pixvalue = *(pixel + *in_pix2); 108 pixelN = PixelLookup(*in_pix2); 109 pixvalue = pixel[pixelN]; 89 110 out_pix2 = out_pix; 90 111 for (jj = 0; jj < expand_out; jj++, out_pix2+=(dx-expand_out)) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CreateZoom8.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define XPIX(x,Rx,S) (x*S + Rx)3 # define ZPIX(value,Rz1,Rz2) (value*Rz1 - Rz2)4 2 # define FRAC(a) ((a) - (int)(a)) 3 4 static float slope = 1.0; 5 static float start = 0.0; 6 static int MaxValue = 255; 7 8 // XXX inline this if needed 9 static int PixelLookup(float value) { 10 int out; 11 out = MIN (MAX (slope * value - start, 0), MaxValue); 12 return (out); 13 } 5 14 6 15 void CreateZoom8 (KapaImageWidget *image, Graphic *graphic, double x, double y) { … … 9 18 int i_start, i_end, j_start, j_end; 10 19 int dropback; /* this is a bit of a kludge... */ 11 int dx, dy, DX, DY ;20 int dx, dy, DX, DY, pixelN; 12 21 double expand, zoomscale, Rx, Ry; 13 22 int expand_in, expand_out; 14 char*out_pix, *out_pix2;15 char *in_pix,*in_pix2;23 unsigned char *out_pix, *out_pix2; 24 float *imdata, *in_pix, *in_pix2; 16 25 unsigned long pixel[256], pixvalue; 17 26 unsigned long back; … … 30 39 back = graphic[0].back; 31 40 41 // define the color transform parameters 42 MaxValue = graphic[0].Npixels - 1; 43 if (image[0].range != 0.0) { 44 slope = graphic[0].Npixels / image[0].range; 45 start = graphic[0].Npixels * image[0].zero / image[0].range; 46 } else { 47 slope = 1.0; 48 start = image[0].zero; 49 } 50 32 51 zoomscale = MAX (5, image[0].expand + 5); 33 52 expand = 1 / zoomscale; 34 53 expand_out = (int) zoomscale; 35 54 expand_in = 1; 36 37 /*38 dx = image[0].zoom.dx;39 dy = image[0].zoom.dy;40 DX = image[0].matrix.Naxis[0];41 DY = image[0].matrix.Naxis[1];42 Rx = 0.5*(DX - (dx - 1)*expand) - x;43 Ry = 0.5*(DY - (dy - 1)*expand) - y;44 data coords of 0,0 point in pic array45 X = 0.5*image[0].matrix.Naxis[0] - expand*((int)(0.5*image[0].zoom.dx + 0.5) - 0.0) - image[0].X;46 Y = 0.5*image[0].matrix.Naxis[1] - expand*((int)(0.5*image[0].zoom.dy + 0.5) - 0.0) - image[0].Y;47 i_start = MIN (MAX (-Rx / expand, 0), dx - expand_out + 1);48 j_start = MIN (MAX (-Ry / expand, 0), dy - expand_out + 1);49 i_end = MAX (MIN ((DX-Rx) / expand, dx - expand_out + 1), 0);50 j_end = MAX (MIN ((DY-Ry) / expand, dy - expand_out + 1), 0);51 dropback = expand_out - (i_end - i_start) % expand_out;52 if ((i_end - i_start) % expand_out == 0) dropback = 0;53 54 out_pix = image[0].zoom.data;55 in_pix = (char *) (image[0].matrix.buffer) + DX*(int)MAX(Y,0) + (int)MAX(X,0);56 57 */58 55 59 56 dx = image[0].zoom.dx; … … 72 69 73 70 out_pix = (char *) image[0].zoom.data; 74 in_pix = (char *) (image[0].matrix.buffer) + DX*(int)MAX(Ry,0) + (int)MAX(Rx,0); 71 imdata = (float *) image[0].matrix.buffer; 72 in_pix = &imdata[DX*(int)MAX(Ry,0) + (int)MAX(Rx,0)]; 75 73 76 74 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 100 98 in_pix2 = in_pix; 101 99 if (expand_out == 1) { 102 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix++) 103 *out_pix = *(pixel + *in_pix2); 104 } 105 else { 100 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix++) { 101 pixelN = PixelLookup(*in_pix2); 102 *out_pix = pixel[pixelN]; 103 } 104 } else { 106 105 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= expand_out) { 107 pixvalue = *(pixel + *in_pix2); 106 pixelN = PixelLookup(*in_pix2); 107 pixvalue = pixel[pixelN]; 108 108 out_pix2 = out_pix; 109 109 for (jj = 0; jj < expand_out; jj++, out_pix2+=(dx-expand_out)) { … … 131 131 132 132 /**** fill in top area ****/ 133 for (j = 0; (j < dx*(dy - j_end)) && (out_pix - image[0].zoom.data < dx*dy); j++, out_pix++) {133 for (j = 0; (j < dx*(dy - j_end)) && (out_pix - (unsigned char *) image[0].zoom.data < dx*dy); j++, out_pix++) { 134 134 *out_pix = back; 135 135 } -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/JPEGit24.c
r13344 r13436 5 5 # define WHITE_G 255 6 6 # define WHITE_B 255 7 8 static float slope = 1.0; 9 static float start = 0.0; 10 static int MaxValue = 255; 11 12 // XXX inline this if needed 13 static int PixelLookup(float value) { 14 int out; 15 out = MIN (MAX (slope * value - start, 0), MaxValue); 16 return (out); 17 } 7 18 8 19 // XXX this currently writes out the jpeg for just the active image … … 21 32 int i_start, i_end, j_start, j_end; 22 33 int dropback; /* this is a bit of a kludge... */ 23 int dx, dy, DX, DY ;34 int dx, dy, DX, DY, pixelN; 24 35 int status, Nbytes, quality; 25 36 int expand_in, expand_out; 26 37 double expand, Rx, Ry, X, Y; 27 unsigned char *out_pix, *in_pix, *in_pix_ref; 38 unsigned char *out_pix; 39 float *imdata, *in_pix, *in_pix_ref; 28 40 unsigned char pixel1[256], pixel2[256], pixel3[256]; 29 41 char filename[1024]; … … 70 82 } 71 83 84 // define the color transform parameters 85 MaxValue = graphic[0].Npixels - 1; 86 if (image[0].range != 0.0) { 87 slope = graphic[0].Npixels / image[0].range; 88 start = graphic[0].Npixels * image[0].zero / image[0].range; 89 } else { 90 slope = 1.0; 91 start = image[0].zero; 92 } 93 72 94 expand = expand_in = expand_out = 1.0; 73 95 if (image[0].expand == 0) /* set up expansions */ … … 123 145 ALLOCATE (line_buffer, JSAMPLE, 3*dx); 124 146 125 in_pix_ref = (unsigned char *) (image[0].matrix.buffer) + DX*(int)MAX(Y,0) + (int)MAX(X,0); 147 imdata = (float *) image[0].matrix.buffer; 148 in_pix_ref = &imdata[DX*(int)MAX(Y,0) + (int)MAX(X,0)]; 126 149 127 150 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 154 177 /*** fill in the picture region ***/ 155 178 for (i = i_start; i < i_end; i+=expand_out, in_pix+=expand_in) { 179 pixelN = PixelLookup(*in_pix); 156 180 for (ii = 0; ii < expand_out; ii++, out_pix+=3) { 157 out_pix[0] = pixel1[ *in_pix];158 out_pix[1] = pixel2[ *in_pix];159 out_pix[2] = pixel3[ *in_pix];181 out_pix[0] = pixel1[pixelN]; 182 out_pix[1] = pixel2[pixelN]; 183 out_pix[2] = pixel3[pixelN]; 160 184 } 161 185 } -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Remap16.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define FRAC(a) ((a) - (int)(a)) 2 3 static float slope = 1.0; 4 static float start = 0.0; 5 static int MaxValue = 255; 6 7 // XXX inline this if needed 8 static int PixelLookup(float value) { 9 int out; 10 out = MIN (MAX (slope * value - start, 0), MaxValue); 11 return (out); 12 } 3 13 4 14 void Remap16 (Graphic *graphic, KapaImageWidget *image, Matrix *matrix) { … … 7 17 int i_start, i_end, j_start, j_end; 8 18 int dropback; /* this is a bit of a kludge... */ 9 int dx, dy, DX, DY ;19 int dx, dy, DX, DY, pixelN; 10 20 double expand, Rx, Ry, X, Y; 11 21 int expand_in, expand_out; 12 22 unsigned char *out_pix, *out_pix2, *data; 13 unsigned char *in_pix,*in_pix2;14 unsigned char pixel1[256], pixel2[256] , pixel3[256];23 float *imdata, *in_pix, *in_pix2; 24 unsigned char pixel1[256], pixel2[256]; 15 25 unsigned char pixvalue1, pixvalue2; 16 26 unsigned long back; 17 27 unsigned char back1, back2; 18 28 29 // local array for pixel values (is this working??) 19 30 for (i = 0; i < 256; i++) { /* set up pixel array */ 20 pixel1[i] = 0x0000ff & graphic[0].cmap[i].pixel; 21 pixel2[i] = 0x0000ff & (graphic[0].cmap[i].pixel >> 8); 22 pixel3[i] = 0x0000ff & (graphic[0].cmap[i].pixel >> 16); 31 pixel1[i] = 0x00ff & graphic[0].cmap[i].pixel; 32 pixel2[i] = 0x00ff & (graphic[0].cmap[i].pixel >> 8); 23 33 } 24 34 back = graphic[0].back; … … 26 36 back2 = 0x00ff & (back >> 8); 27 37 38 // define the color transform parameters 39 MaxValue = graphic[0].Npixels - 1; 40 if (image[0].range != 0.0) { 41 slope = graphic[0].Npixels / image[0].range; 42 start = graphic[0].Npixels * image[0].zero / image[0].range; 43 } else { 44 slope = 1.0; 45 start = image[0].zero; 46 } 47 48 // set up expansions 28 49 expand = expand_in = expand_out = 1.0; 29 50 if (image[0].expand == 0) /* set up expansions */ … … 40 61 } 41 62 63 // define the image boundaries 42 64 dx = image[0].picture.dx; 43 65 dy = image[0].picture.dy; … … 76 98 77 99 data = out_pix = (unsigned char *) image[0].picture.data; 78 in_pix = (unsigned char *) (matrix[0].buffer) + DX*(int)MAX(Y,0) + (int)MAX(X,0); 100 imdata = (float *) matrix[0].buffer; 101 in_pix = &imdata[DX*(int)MAX(Y,0) + (int)MAX(X,0)]; 79 102 80 103 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 105 128 if (expand_out == 1) { 106 129 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix+=2) { 107 out_pix[0] = pixel1[*in_pix2]; 108 out_pix[1] = pixel2[*in_pix2]; 130 pixelN = PixelLookup(*in_pix2); 131 out_pix[0] = pixel1[pixelN]; 132 out_pix[1] = pixel2[pixelN]; 109 133 } 110 134 } 111 135 else { 112 136 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= 2*expand_out) { 113 pixvalue1 = pixel1[*in_pix2]; 114 pixvalue2 = pixel2[*in_pix2]; 137 pixelN = PixelLookup(*in_pix2); 138 pixvalue1 = pixel1[pixelN]; 139 pixvalue2 = pixel2[pixelN]; 115 140 out_pix2 = out_pix; 116 141 for (jj = 0; jj < expand_out; jj++, out_pix2+=2*(dx-expand_out)) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Remap24.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define FRAC(a) ((a) - (int)(a)) 2 3 static float slope = 1.0; 4 static float start = 0.0; 5 static int MaxValue = 255; 6 7 // XXX inline this if needed 8 static int PixelLookup(float value) { 9 int out; 10 out = MIN (MAX (slope * value - start, 0), MaxValue); 11 return (out); 12 } 3 13 4 14 void Remap24 (Graphic *graphic, KapaImageWidget *image, Matrix *matrix) { … … 7 17 int i_start, i_end, j_start, j_end; 8 18 int dropback, extra; /* this is a bit of a kludge... */ 9 int dx, dy, DX, DY ;19 int dx, dy, DX, DY, pixelN; 10 20 double expand, Rx, Ry, X, Y; 11 21 int expand_in, expand_out; 12 22 unsigned char *out_pix, *out_pix2, *data; 13 unsigned char *in_pix,*in_pix2;23 float *imdata, *in_pix, *in_pix2; 14 24 unsigned char pixel1[256], pixel2[256], pixel3[256]; 15 25 unsigned char pixvalue1, pixvalue2, pixvalue3; … … 17 27 unsigned char back1, back2, back3; 18 28 29 // local arrays for pixel values 19 30 for (i = 0; i < 256; i++) { /* set up pixel array */ 20 31 pixel1[i] = 0x0000ff & graphic[0].cmap[i].pixel; … … 27 38 back3 = 0x0000ff & (back >> 16); 28 39 40 // define the color transform parameters 41 MaxValue = graphic[0].Npixels - 1; 42 if (image[0].range != 0.0) { 43 slope = graphic[0].Npixels / image[0].range; 44 start = graphic[0].Npixels * image[0].zero / image[0].range; 45 } else { 46 slope = 1.0; 47 start = image[0].zero; 48 } 49 50 // set up expansions 29 51 expand = expand_in = expand_out = 1.0; 30 52 if (image[0].expand == 0) /* set up expansions */ … … 78 100 79 101 data = out_pix = (unsigned char *) image[0].picture.data; 80 in_pix = (unsigned char *) (matrix[0].buffer) + DX*(int)MAX(Y,0) + (int)MAX(X,0); 102 imdata = (float *) matrix[0].buffer; 103 in_pix = &imdata[DX*(int)MAX(Y,0) + (int)MAX(X,0)]; 81 104 82 105 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 110 133 if (expand_out == 1) { 111 134 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix+=3) { 112 out_pix[0] = pixel1[*in_pix2]; 113 out_pix[1] = pixel2[*in_pix2]; 114 out_pix[2] = pixel3[*in_pix2]; 135 pixelN = PixelLookup(*in_pix2); 136 out_pix[0] = pixel1[pixelN]; 137 out_pix[1] = pixel2[pixelN]; 138 out_pix[2] = pixel3[pixelN]; 115 139 } 116 } 117 else { 140 } else { 118 141 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= 3*expand_out) { 119 pixvalue1 = pixel1[*in_pix2]; 120 pixvalue2 = pixel2[*in_pix2]; 121 pixvalue3 = pixel3[*in_pix2]; 142 pixelN = PixelLookup(*in_pix2); 143 pixvalue1 = pixel1[pixelN]; 144 pixvalue2 = pixel2[pixelN]; 145 pixvalue3 = pixel3[pixelN]; 122 146 out_pix2 = out_pix; 123 147 for (jj = 0; jj < expand_out; jj++, out_pix2+=3*(dx-expand_out)+extra) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Remap32.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define FRAC(a) ((a) - (int)(a)) 2 3 static float slope = 1.0; 4 static float start = 0.0; 5 static int MaxValue = 255; 6 7 // XXX inline this if needed 8 static int PixelLookup(float value) { 9 int out; 10 out = MIN (MAX (slope * value - start, 0), MaxValue); 11 return (out); 12 } 3 13 4 14 void Remap32 (Graphic *graphic, KapaImageWidget *image, Matrix *matrix) { … … 7 17 int i_start, i_end, j_start, j_end; 8 18 int dropback; /* this is a bit of a kludge... */ 9 int dx, dy, DX, DY ;19 int dx, dy, DX, DY, pixelN; 10 20 double expand, Rx, Ry, X, Y; 11 21 int expand_in, expand_out; 12 22 unsigned int *out_pix, *out_pix2; 13 unsigned char *in_pix,*in_pix2;23 float *imdata, *in_pix, *in_pix2; 14 24 unsigned long pixel[256], pixvalue; 15 25 unsigned long back; 16 26 17 for (i = 0; i < 256; i++) { /* set up pixel array */ 27 // local array for pixel values 28 for (i = 0; i < 256; i++) { 18 29 pixel[i] = graphic[0].cmap[i].pixel; 19 30 } 20 31 back = graphic[0].back; 21 32 33 // define the color transform parameters 34 MaxValue = graphic[0].Npixels - 1; 35 if (image[0].range != 0.0) { 36 slope = graphic[0].Npixels / image[0].range; 37 start = graphic[0].Npixels * image[0].zero / image[0].range; 38 } else { 39 slope = 1.0; 40 start = image[0].zero; 41 } 42 43 // set up expansions 22 44 expand = expand_in = expand_out = 1.0; 23 if (image[0].expand == 0) /* set up expansions */45 if (image[0].expand == 0) 24 46 image[0].expand = 1; 25 47 if (image[0].expand > 0) { … … 34 56 } 35 57 58 // define the image boundaries 36 59 dx = image[0].picture.dx; 37 60 dy = image[0].picture.dy; … … 69 92 70 93 out_pix = (unsigned int *) image[0].picture.data; 71 in_pix = (unsigned char *) (matrix[0].buffer) + DX*(int)MAX(Y,0) + (int)MAX(X,0); 94 imdata = (float *) matrix[0].buffer; 95 in_pix = &imdata[DX*(int)MAX(Y,0) + (int)MAX(X,0)]; 72 96 73 97 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 92 116 if (expand_out == 1) { 93 117 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix++) { 94 *out_pix = pixel[*in_pix2]; 118 pixelN = PixelLookup(*in_pix2); 119 *out_pix = pixel[pixelN]; 95 120 } 96 /* *out_pix = *(pixel + *in_pix2); */97 121 } 98 122 else { 99 123 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= expand_out) { 100 pixvalue = pixel[*in_pix2]; 124 pixelN = PixelLookup(*in_pix2); 125 pixvalue = pixel[pixelN]; 101 126 out_pix2 = out_pix; 102 127 for (jj = 0; jj < expand_out; jj++, out_pix2+=(dx-expand_out)) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/Remap8.c
r13320 r13436 1 1 # include "Ximage.h" 2 # define FRAC(a) ((a) - (int)(a)) 2 3 static float slope = 1.0; 4 static float start = 0.0; 5 static int MaxValue = 255; 6 7 // XXX inline this if needed 8 static int PixelLookup(float value) { 9 int out; 10 out = MIN (MAX (slope * value - start, 0), MaxValue); 11 return (out); 12 } 3 13 4 14 void Remap8 (Graphic *graphic, KapaImageWidget *image, Matrix *matrix) { … … 7 17 int i_start, i_end, j_start, j_end; 8 18 int dropback; /* this is a bit of a kludge... */ 9 int dx, dy, DX, DY ;19 int dx, dy, DX, DY, pixelN; 10 20 double expand, Rx, Ry, X, Y; 11 21 int expand_in, expand_out; 12 22 unsigned char *out_pix, *out_pix2; 13 unsigned char*in_pix, *in_pix2;23 float *imdata, *in_pix, *in_pix2; 14 24 unsigned long pixel[256], pixvalue; 15 25 unsigned long back; 16 26 17 for (i = 0; i < 256; i++) { /* set up pixel array */ 27 // local array for pixel values 28 for (i = 0; i < 256; i++) { 18 29 pixel[i] = graphic[0].cmap[i].pixel; 19 30 } 20 31 back = graphic[0].back; 21 32 33 // define the color transform parameters 34 MaxValue = graphic[0].Npixels - 1; 35 if (image[0].range != 0.0) { 36 slope = graphic[0].Npixels / image[0].range; 37 start = graphic[0].Npixels * image[0].zero / image[0].range; 38 } else { 39 slope = 1.0; 40 start = image[0].zero; 41 } 42 43 // set up expansions 22 44 expand = expand_in = expand_out = 1.0; 23 45 if (image[0].expand == 0) /* set up expansions */ … … 34 56 } 35 57 58 // define the image boundaries 36 59 dx = image[0].picture.dx; 37 60 dy = image[0].picture.dy; 38 61 DX = matrix[0].Naxis[0]; 39 62 DY = matrix[0].Naxis[1]; 63 40 64 /* X,Y are the image coordinates of the first image pixel */ 41 65 X = MAX(0.5*(DX - dx*expand) - image[0].X, 0); … … 69 93 70 94 out_pix = (unsigned char *) image[0].picture.data; 71 in_pix = (unsigned char *) matrix[0].buffer + DX*(int)MAX(Y,0) + (int)MAX(X,0); 95 imdata = (float *) matrix[0].buffer; 96 in_pix = &imdata[(int)(DX*(int)MAX(Y,0) + (int)MAX(X,0))]; 72 97 73 98 /********** below we do the mapping from buffer pixels (in) to picture pixels (out) **********/ … … 92 117 if (expand_out == 1) { 93 118 for (i = i_start; i < i_end; i++, in_pix2+= expand_in, out_pix++) { 94 *out_pix = pixel[*in_pix2]; 119 pixelN = PixelLookup(*in_pix2); 120 *out_pix = pixel[pixelN]; 95 121 } 96 /* *out_pix = *(pixel + *in_pix2); */ 97 } 98 else { 122 } else { 99 123 for (i = i_start; i < i_end; i+= expand_out, in_pix2++, out_pix+= expand_out) { 100 pixvalue = pixel[*in_pix2]; 124 pixelN = PixelLookup(*in_pix2); 125 pixvalue = pixel[pixelN]; 101 126 out_pix2 = out_pix; 102 127 for (jj = 0; jj < expand_out; jj++, out_pix2+=(dx-expand_out)) { -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/SetGraphData.c
r13434 r13436 34 34 &graph[0].data.ymin, 35 35 &graph[0].data.ymax); 36 37 KiiScanMessage (sock, "%f %f %f %f", 38 &graph[0].data.coords.pc1_1, &graph[0].data.coords.pc2_2, 39 &graph[0].data.coords.pc1_2, &graph[0].data.coords.pc2_1); 40 41 KiiScanMessage (sock, "%d %d %s", 42 &graph[0].data.flipeast, &graph[0].data.flipnorth, 43 graph[0].data.coords.ctype); 44 45 KiiScanMessage (sock, "%lf %lf %f %f %f %f", 46 &graph[0].data.coords.crval1, 47 &graph[0].data.coords.crval2, 48 &graph[0].data.coords.crpix1, 49 &graph[0].data.coords.crpix2, 50 &graph[0].data.coords.cdelt1, 51 &graph[0].data.coords.cdelt2); 52 53 36 54 37 55 xmin = graph[0].data.xmin; … … 77 95 graph[0].data.etype, graph[0].data.ebar, graph[0].data.color, 78 96 graph[0].data.lweight, graph[0].data.size); 97 79 98 KiiSendMessage (sock, "%g %g %g %g", 80 99 graph[0].data.xmin, graph[0].data.xmax, 81 100 graph[0].data.ymin, graph[0].data.ymax); 82 101 102 KiiSendMessage (sock, "%g %g %g %g", 103 graph[0].data.coords.pc1_1, graph[0].data.coords.pc2_2, 104 graph[0].data.coords.pc1_2, graph[0].data.coords.pc2_1); 105 106 KiiSendMessage (sock, "%d %d %s", 107 graph[0].data.flipeast, graph[0].data.flipnorth, 108 graph[0].data.coords.ctype); 109 110 KiiSendMessage (sock, "%g %g %g %g %g %g", 111 graph[0].data.coords.crval1, 112 graph[0].data.coords.crval2, 113 graph[0].data.coords.crpix1, 114 graph[0].data.coords.crpix2, 115 graph[0].data.coords.cdelt1, 116 graph[0].data.coords.cdelt2); 117 83 118 return (TRUE); 84 119 } -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/UpdatePointer.c
r13401 r13436 6 6 int textpad; 7 7 double x, y, z; 8 float *data; 8 9 char line[100]; 9 10 Section *section; … … 18 19 if (image[0].MovePointer && InPicture ((XButtonEvent *)event, &image[0].picture)) { 19 20 21 data = (float *) image[0].matrix.buffer; 20 22 Screen_to_Image (&x, &y, (double)event[0].x, (double)event[0].y, image); 21 23 22 if ((x >= 0) && (x < image[0].matrix.Naxis[0]) && (y >= 0) && (y < image[0].matrix.Naxis[1])) { 23 /* 24 X = event[0].x - image[0].picture.x; 25 Y = event[0].y - image[0].picture.y; 26 pix = MIN (MAX (X + Y*image[0].picture.dx, 0), image[0].picture.dx*image[0].picture.dy - 1); 27 z = image[0].range * image[0].picture.data[pix] / image[0].Npixels + image[0].zero; 28 */ 29 z = -1; 30 } 31 else 32 z = -1; 24 z = -1; 25 if (x < 0) goto skip; 26 if (x >= image[0].matrix.Naxis[0]) goto skip; 27 if (y < 0) goto skip; 28 if (y >= image[0].matrix.Naxis[1]) goto skip; 29 z = data[(int)(y)*image[0].matrix.Naxis[0] + (int)(x)]; 30 31 skip: 33 32 image[0].x = x; 34 33 image[0].y = y; … … 45 44 CrossHairs (graphic, image); 46 45 XFlush (graphic[0].display); 47 48 46 } 49 47 … … 56 54 XSetForeground (graphic[0].display, graphic[0].gc, graphic[0].fore); 57 55 bzero (line, 100); 58 sprintf (line, "%2 5.2f", z);56 sprintf (line, "%22.3f", z); 59 57 XDrawString (graphic[0].display, graphic[0].window, graphic[0].gc, 60 58 image[0].text_x + PAD1, image[0].text_y + textpad + PAD1, -
branches/kapa-mods-2007-05/Ohana/src/kapa2/src/bDrawOverlay.c
r13432 r13436 23 23 expand = fabs((double)image[0].expand); 24 24 } 25 /*26 X = 0.5*image[0].matrix.Naxis[0] - expand*((int)(0.5*image[0].picture.dx + 0.5) - 0.0) - image[0].X;27 Y = 0.5*image[0].matrix.Naxis[1] - expand*((int)(0.5*image[0].picture.dy + 0.5) - 0.0) - image[0].Y;28 X0 = (image[0].X + 1 - (int)(0.5*image[0].matrix.Naxis[0] + 0.5) - X + (int)X)/expand + image[0].picture.x + 0.5*image[0].picture.dx;29 Y0 = (image[0].Y + 1 - (int)(0.5*image[0].matrix.Naxis[1] + 0.5) - Y + (int)Y)/expand + image[0].picture.y + 0.5*image[0].picture.dy;30 */31 25 32 26 Image_to_Screen (&X0, &Y0, 0.0, 0.0, image); -
branches/kapa-mods-2007-05/Ohana/src/libkapa/src/KapaWindow.c
r13434 r13436 120 120 data[0].etype, data[0].ebar, data[0].color, 121 121 data[0].lweight, data[0].size); 122 122 123 KiiSendMessage (fd, "%g %g %g %g", 123 124 data[0].xmin, data[0].xmax, 124 125 data[0].ymin, data[0].ymax); 126 127 KiiSendMessage (fd, "%g %g %g %g", 128 data[0].coords.pc1_1, data[0].coords.pc2_2, 129 data[0].coords.pc1_2, data[0].coords.pc2_1); 130 131 KiiSendMessage (fd, "%d %d %s", 132 data[0].flipeast, data[0].flipnorth, 133 data[0].coords.ctype); 134 135 KiiSendMessage (fd, "%g %g %g %g %g %g", 136 data[0].coords.crval1, 137 data[0].coords.crval2, 138 data[0].coords.crpix1, 139 data[0].coords.crpix2, 140 data[0].coords.cdelt1, 141 data[0].coords.cdelt2); 142 125 143 KiiWaitAnswer (fd, "DONE"); 126 144 return (TRUE); … … 138 156 &data[0].etype, &data[0].ebar, &data[0].color, 139 157 &data[0].lweight, &data[0].size); 158 140 159 KiiScanMessage (fd, "%lf %lf %lf %lf", 141 160 &data[0].xmin, &data[0].xmax, 142 161 &data[0].ymin, &data[0].ymax); 162 163 KiiScanMessage (fd, "%f %f %f %f", 164 &data[0].coords.pc1_1, &data[0].coords.pc2_2, 165 &data[0].coords.pc1_2, &data[0].coords.pc2_1); 166 167 KiiScanMessage (fd, "%d %d %s", 168 &data[0].flipeast, &data[0].flipnorth, 169 data[0].coords.ctype); 170 171 KiiScanMessage (fd, "%lf %lf %f %f %f %f", 172 &data[0].coords.crval1, 173 &data[0].coords.crval2, 174 &data[0].coords.crpix1, 175 &data[0].coords.crpix2, 176 &data[0].coords.cdelt1, 177 &data[0].coords.cdelt2); 178 143 179 KiiWaitAnswer (fd, "DONE"); 144 180 return (TRUE); … … 240 276 241 277 KiiSendCommand (fd, 4, "GLIM"); 242 KiiScanMessage (fd, "% lf %lf", dx, dy);278 KiiScanMessage (fd, "%f %f", dx, dy); 243 279 KiiWaitAnswer (fd, "DONE"); 244 280 return (TRUE); -
branches/kapa-mods-2007-05/Ohana/src/libkapa/src/KiiPicture.c
r13434 r13436 2 2 3 3 int KiiNewPicture1D (int fd, KiiImage *image, KapaImageData *data, Coords *coords) { 4 5 int i; 6 int Npix, Ncolors, NNcolors, size; 7 float *in, min, max; 8 char *out, *outbuffer; 9 double a1, a2; 10 11 Npix = image[0].Nx*image[0].Ny; 12 13 KiiSendCommand (fd, 4, "READ"); /* tell kapa to look for the incoming image */ 14 KiiScanMessage (fd, "%d", &Ncolors); 15 16 in = image[0].data1d; 17 18 /* these are for a future upgrade */ 19 min = max = 0.0; 20 size = Npix*sizeof(float); 21 22 /* done with the conversion, now send kapa the converted picture */ 23 KiiSendMessage (fd, "%8d %8d", image[0].Nx, image[0].Ny); 24 KiiSendMessage (fd, "-32 1 0.0 1.0"); 25 KiiSendMessage (fd, "%f %f %s %s", data[0].zero, data[0].range, data[0].name, data[0].file); 26 KiiSendMessage (fd, "%f %f %d ", min, max, size); 27 KiiSendMessage (fd, "%f %f %g %g %g ", coords[0].crval1, coords[0].crpix1, coords[0].cdelt1, coords[0].pc1_1, coords[0].pc1_2); 28 KiiSendMessage (fd, "%f %f %g %g %g ", coords[0].crval2, coords[0].crpix2, coords[0].cdelt2, coords[0].pc2_1, coords[0].pc2_2); 29 KiiSendMessage (fd, "%s", coords[0].ctype); 30 31 /* send the image data */ 32 write (fd, image[0].data1d, size); 33 34 KiiWaitAnswer (fd, "DONE"); 35 return (TRUE); 36 } 37 38 int KiiNewPicture1D_8bit (int fd, KiiImage *image, KapaImageData *data, Coords *coords) { 4 39 5 40 int i; -
branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dmt.c
r13432 r13436 4 4 int dmt (int argc, char **argv) { 5 5 6 int i, m, k, N, SaveVectors;6 int i, m, k, N, kapa, SaveVectors; 7 7 int Nsec, Nsecfilt, NPTS; 8 8 double Radius; -
branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/style_args.c
r13394 r13436 4 4 int style_args (Graphdata *graphmode, int *argc, char **argv, int *kapa) { 5 5 6 int N, Ngraph; 7 char *name; 6 int N; 7 char *colorName; 8 char *kapaName; 8 9 9 name = NULL;10 kapaName = NULL; 10 11 if ((N = get_argument (*argc, argv, "-n"))) { 11 12 remove_argument (N, argc, argv); 12 name = strcreate (argv[N]);13 kapaName = strcreate (argv[N]); 13 14 remove_argument (N, argc, argv); 14 15 } 15 if (!GetGraph (graphmode, kapa, name)) return (FALSE);16 FREE ( name);16 if (!GetGraph (graphmode, kapa, kapaName)) return (FALSE); 17 FREE (kapaName); 17 18 18 19 if (*argc == 1) { 19 name = KapaColorName (graphmode[0].color); 20 gprint (GP_ERR, "current style (%d): -x %d -c %s -pt %d -lt %d -lw %f -sz %f\n", Ngraph, 21 graphmode[0].style, name, graphmode[0].ptype, 20 kapaName = GetKapaName(); 21 colorName = KapaColorName (graphmode[0].color); 22 gprint (GP_ERR, "current style (%s): -x %d -c %s -pt %d -lt %d -lw %f -sz %f\n", kapaName, 23 graphmode[0].style, colorName, graphmode[0].ptype, 22 24 graphmode[0].ltype, graphmode[0].lweight, 23 25 graphmode[0].size);
Note:
See TracChangeset
for help on using the changeset viewer.
