Changeset 40927
- Timestamp:
- Oct 8, 2019, 9:18:09 PM (7 years ago)
- Location:
- branches/eam_branches/ohana.20190329/src/kapa2
- Files:
-
- 6 edited
-
include/prototypes.h (modified) (2 diffs)
-
include/structures.h (modified) (1 diff)
-
src/DrawObjects.c (modified) (6 diffs)
-
src/LoadObject.c (modified) (1 diff)
-
src/Refresh.c (modified) (2 diffs)
-
src/bDrawObjects.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ohana.20190329/src/kapa2/include/prototypes.h
r40782 r40927 39 39 void DrawTextlines PROTO((KapaGraphWidget *graph)); 40 40 void DrawConnect PROTO((Graphic *graphic, KapaGraphWidget *graph, Gobjects *objects)); 41 void DrawPolygon PROTO((Graphic *graphic, KapaGraphWidget *graph, Gobjects *objects)); 42 void DrawPolyfill PROTO((Graphic *graphic, KapaGraphWidget *graph, Gobjects *objects)); 41 43 void DrawHistogram PROTO((Graphic *graphic, KapaGraphWidget *graph, Gobjects *objects)); 42 44 int DrawObjectN PROTO((Graphic *graphic, KapaGraphWidget *graph, Gobjects *objects)); … … 150 152 void bDrawBars PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object, int mode)); 151 153 void bDrawPoints PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object)); 154 void bDrawPolygons PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object)); 155 void bDrawFillPolygons PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object)); 152 156 void bDrawXErrors PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object)); 153 157 void bDrawYErrors PROTO((bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object)); -
branches/eam_branches/ohana.20190329/src/kapa2/include/structures.h
r40731 r40927 133 133 } Overlay; 134 134 135 typedef struct { 136 float *x, *y, *z, *dxp, *dxm, *dyp, *dym; 137 int Npts; 138 int style, ptype, ltype, color, etype, ebar; 139 double lweight, size; 135 // a set of objects all have the same basic properties 136 typedef struct { 137 float *x; // x-coordinates of the points 138 float *y; // y-coordinates of the points 139 float *z; // size/colorscale for points 140 float *dxp; // lower-errorbar in x 141 float *dxm; // upper-errorbar in x 142 float *dyp; // lower-errorbar in y 143 float *dym; // upper-errorbar in y 144 int Npts; // number of points in this set 145 int style; // how are the object draw: CONNECT, HISTOGRAM, 146 int ptype; // shape of object at each point 147 // ptype is overloaded for NPOLYGON to be the number of points / polygon 148 int ltype; // style of line (solid, dot, dash, etc) 149 int color; // color for point (if not colorscaled) 150 int etype; // errorbars to draw (0x01 = y, 0x02 = x) 151 int ebar; // draw a cap on the error bar 152 double lweight; // line thickness 153 double size; // size of the object 140 154 double x0, x1, y0, y1; /* limits for this object */ 141 155 double alpha; -
branches/eam_branches/ohana.20190329/src/kapa2/src/DrawObjects.c
r40291 r40927 97 97 switch (object[0].style) { 98 98 case KAPA_PLOT_CONNECT: 99 // fprintf (stderr, "plot KAPA_PLOT_CONNECT: \n");100 99 DrawConnect (graphic, graph, object); 101 100 break; 101 case KAPA_PLOT_POLYGON: 102 DrawPolygon (graphic, graph, object); 103 break; 104 case KAPA_PLOT_POLYFILL: 105 DrawPolyfill (graphic, graph, object); 106 break; 102 107 case KAPA_PLOT_HISTOGRAM: 103 // fprintf (stderr, "plot KAPA_PLOT_HISTOGRAM:\n");104 108 DrawHistogram (graphic, graph, object); 105 109 break; 106 110 case KAPA_PLOT_BARS_SOLID: 107 // fprintf (stderr, "plot KAPA_PLOT_BARS_SOLID:\n");108 111 DrawBars (graphic, graph, object, KAPA_PLOT_BARS_SOLID); 109 112 break; 110 113 case KAPA_PLOT_BARS_OUTLINE: 111 // fprintf (stderr, "plot KAPA_PLOT_BARS_OUTLINE:\n");112 114 DrawBars (graphic, graph, object, KAPA_PLOT_BARS_OUTLINE); 113 115 break; 114 116 case KAPA_PLOT_BARS_OUTFILL: 115 // fprintf (stderr, "plot KAPA_PLOT_BARS_OUTFILL:\n");116 117 DrawBars (graphic, graph, object, KAPA_PLOT_BARS_OUTFILL); 117 118 break; 118 119 case KAPA_PLOT_POINTS: 119 120 default: 120 // fprintf (stderr, "plot KAPA_PLOT_POINTS:\n");121 121 DrawPoints (graphic, graph, object); 122 122 break; … … 172 172 sx0 = sx1; sy0 = sy1; 173 173 } 174 174 } 175 176 /******/ 177 void DrawPolygon (Graphic *graphic, KapaGraphWidget *graph, Gobjects *object) { 178 179 float *x, *y; 180 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 181 double sx0, sy0, sx1, sy1; 182 double X0, X1, Y0, Y1; 183 184 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 185 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); 186 myi = graph[0].axis[0].dfy / (object[0].x1 - object[0].x0); 187 myj = graph[0].axis[1].dfy / (object[0].y1 - object[0].y0); 188 189 bxi = graph[0].axis[0].fx - object[0].x0*graph[0].axis[0].dfx/(object[0].x1 - object[0].x0); 190 bxj = -object[0].y0*graph[0].axis[1].dfx/(object[0].y1 - object[0].y0); 191 byi = -object[0].x0*graph[0].axis[0].dfy/(object[0].x1 - object[0].x0); 192 byj = graph[0].axis[1].fy - object[0].y0*graph[0].axis[1].dfy/(object[0].y1 - object[0].y0); 193 194 bx = bxi + bxj; 195 by = byi + byj; 196 197 X0 = graph[0].axis[0].fx; 198 X1 = graph[0].axis[0].fx + graph[0].axis[0].dfx; 199 Y0 = graph[0].axis[1].fy; 200 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 201 202 x = object[0].x; y = object[0].y; 203 204 // ptype must > 2 205 // Npts % ptype must be 0 206 // who must validate that? 207 208 // each polygon is made of (N = ptype) points 209 // we connect each point and the last one back 210 for (int i = 0; i < object[0].Npts; i += object[0].ptype) { 211 // first check for any invalid values for this polygon 212 int skipObject = FALSE; 213 for (int j = 0; (j < object[0].ptype) && !skipObject; j++) { 214 int k = i + j; 215 if (!(finite(x[k]) && finite(y[k]))) skipObject = TRUE; 216 } 217 if (skipObject) continue; 218 219 for (int j = 0; (j < object[0].ptype); j++) { 220 int k = i + j; 221 sx0 = x[k]*mxi + y[k]*mxj + bx + XCENTER; 222 sy0 = x[k]*myi + y[k]*myj + by + YCENTER; 223 224 // last point connects to first 225 if (j == object[0].ptype - 1) { 226 sx1 = x[i]*mxi + y[i]*mxj + bx + XCENTER; 227 sy1 = x[i]*myi + y[i]*myj + by + YCENTER; 228 } else { 229 sx1 = x[k+1]*mxi + y[k+1]*mxj + bx + XCENTER; 230 sy1 = x[k+1]*myi + y[k+1]*myj + by + YCENTER; 231 } 232 ClipLine (graphic, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 233 } 234 } 235 } 236 237 /******/ 238 void DrawPolyfill (Graphic *graphic, KapaGraphWidget *graph, Gobjects *object) { 239 240 float *x, *y, *z; 241 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 242 double sx0, sy0; 243 // double X0, X1, Y0, Y1; 244 245 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 246 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); 247 myi = graph[0].axis[0].dfy / (object[0].x1 - object[0].x0); 248 myj = graph[0].axis[1].dfy / (object[0].y1 - object[0].y0); 249 250 bxi = graph[0].axis[0].fx - object[0].x0*graph[0].axis[0].dfx/(object[0].x1 - object[0].x0); 251 bxj = -object[0].y0*graph[0].axis[1].dfx/(object[0].y1 - object[0].y0); 252 byi = -object[0].x0*graph[0].axis[0].dfy/(object[0].x1 - object[0].x0); 253 byj = graph[0].axis[1].fy - object[0].y0*graph[0].axis[1].dfy/(object[0].y1 - object[0].y0); 254 255 bx = bxi + bxj; 256 by = byi + byj; 257 258 /* 259 window boundary so we can clip objects 260 X0 = graph[0].axis[0].fx; 261 X1 = graph[0].axis[0].fx + graph[0].axis[0].dfx; 262 Y0 = graph[0].axis[1].fy; 263 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 264 */ 265 266 x = object[0].x; y = object[0].y; z = object[0].z; 267 268 // ptype must > 2 269 // Npts % ptype must be 0 270 // who must validate that? 271 272 ALLOCATE_PTR (points, XPoint, object[0].ptype); 273 274 // NOTE that LoadObject.c:45 limits the allow 275 // object styles which may have negative (scaled) colors 276 int scaleColor = (object[0].color < 0); 277 278 // each polygon is made of (N = ptype) points 279 // we connect each point and the last one back 280 for (int i = 0; i < object[0].Npts; i += object[0].ptype) { 281 // first check for any invalid values for this polygon 282 int skipObject = FALSE; 283 for (int j = 0; (j < object[0].ptype) && !skipObject; j++) { 284 int k = i + j; 285 if (!(finite(x[k]) && finite(y[k]))) skipObject = TRUE; 286 } 287 if (skipObject) continue; 288 289 for (int j = 0; (j < object[0].ptype); j++) { 290 int k = i + j; 291 sx0 = x[k]*mxi + y[k]*mxj + bx + XCENTER; 292 sy0 = x[k]*myi + y[k]*myj + by + YCENTER; 293 294 points[j].x = sx0; 295 points[j].y = sy0; 296 } 297 298 if (scaleColor) { 299 if (!finite(z[i])) continue; 300 int pixel = MIN (graphic->Npixels - 2, MAX (0, z[i]*(graphic->Npixels - 1))); 301 XSetForeground (graphic->display, graphic->gc, graphic->cmap[pixel].pixel); 302 } 303 XFillPolygon (graphic->display, graphic->window, graphic->gc, points, object[0].ptype, Convex, CoordModeOrigin); 304 } 305 306 free (points); 175 307 } 176 308 … … 580 712 int scaleColor = (object[0].color < 0); 581 713 714 // NOTE that LoadObject.c:45 limits the allow 715 // object styles which may have negative (scaled) colors 716 582 717 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 583 718 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; … … 916 1051 // for open circles, only go to the outer radius 917 1052 D = 0; 918 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; }919 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; }920 if (object[0].ptype == 5) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; }921 if (object[0].ptype == 15) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; }1053 if (object[0].ptype == KAPA_POINT_CIRCLE_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1054 if (object[0].ptype == KAPA_POINT_BOX_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1055 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 1056 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 922 1057 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) goto skip_dxp; 923 1058 if (D > fabs(dxp[i]*mxi)) goto skip_dxp; … … 999 1134 // for open circles, only go to the outer radius 1000 1135 D = 0; 1001 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; }1002 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; }1003 if (object[0].ptype == 5) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; }1004 if (object[0].ptype == 15) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; }1136 if (object[0].ptype == KAPA_POINT_CIRCLE_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1137 if (object[0].ptype == KAPA_POINT_BOX_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1138 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 1139 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 1005 1140 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) goto skip_dyp; 1006 1141 if (D > fabs(dyp[i]*myj)) goto skip_dyp; … … 1023 1158 skip_dyp: 1024 1159 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 1025 if (object[0].ptype == 5) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; }1026 if (object[0].ptype == 15) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; }1160 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 1161 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 1027 1162 if (D > fabs(dym[i]*myj)) continue; 1028 1163 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER; -
branches/eam_branches/ohana.20190329/src/kapa2/src/LoadObject.c
r40731 r40927 42 42 graph[0].objects[N].color = KapaColormapSize() - 1; 43 43 } 44 if ((graph[0].objects[N].style != KAPA_PLOT_POINTS) && (graph[0].objects[N].color < 0)) { 44 45 // XXX watch out for this restriction in DrawObjects / bDrawObjects 46 int canScaleColor = FALSE; 47 canScaleColor |= (graph[0].objects[N].style == KAPA_PLOT_POINTS); 48 canScaleColor |= (graph[0].objects[N].style == KAPA_PLOT_POLYFILL); 49 50 if (!canScaleColor && (graph[0].objects[N].color < 0)) { 45 51 graph[0].objects[N].color = 0; 46 52 } -
branches/eam_branches/ohana.20190329/src/kapa2/src/Refresh.c
r40781 r40927 1 1 # include "Ximage.h" 2 3 # define USE_BUFFERED_DRAW 0 2 4 3 5 void bDrawXimage (bDrawBuffer *buffer); … … 6 8 7 9 void Refresh (void) { 8 Refresh_Buffered(); 10 if (USE_BUFFERED_DRAW) { 11 Refresh_Buffered(); 12 } else { 13 Refresh_Unbuffered(); 14 } 9 15 } 10 16 -
branches/eam_branches/ohana.20190329/src/kapa2/src/bDrawObjects.c
r40731 r40927 38 38 bDrawConnect (buffer, graph, object); 39 39 break; 40 case KAPA_PLOT_POLYGON: 41 bDrawPolygons (buffer, graph, object); 42 break; 43 case KAPA_PLOT_POLYFILL: 44 bDrawFillPolygons (buffer, graph, object); 45 break; 40 46 case KAPA_PLOT_HISTOGRAM: 41 47 bDrawHistogram (buffer, graph, object); … … 105 111 sx0 = sx1; sy0 = sy1; 106 112 } 113 } 114 115 void bDrawPolygons (bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object) { 116 117 float *x, *y; 118 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 119 double sx0, sy0, sx1, sy1; 120 double X0, X1, Y0, Y1; 121 122 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 123 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); 124 myi = graph[0].axis[0].dfy / (object[0].x1 - object[0].x0); 125 myj = graph[0].axis[1].dfy / (object[0].y1 - object[0].y0); 126 127 bxi = graph[0].axis[0].fx - object[0].x0*graph[0].axis[0].dfx/(object[0].x1 - object[0].x0); 128 bxj = -object[0].y0*graph[0].axis[1].dfx/(object[0].y1 - object[0].y0); 129 byi = -object[0].x0*graph[0].axis[0].dfy/(object[0].x1 - object[0].x0); 130 byj = graph[0].axis[1].fy - object[0].y0*graph[0].axis[1].dfy/(object[0].y1 - object[0].y0); 131 132 bx = bxi + bxj; 133 by = byi + byj; 134 135 X0 = graph[0].axis[0].fx; 136 X1 = graph[0].axis[0].fx + graph[0].axis[0].dfx; 137 Y0 = graph[0].axis[1].fy; 138 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 139 140 x = object[0].x; y = object[0].y; 141 142 // ptype must > 2 143 // Npts % ptype must be 0 144 // who must validate that? 145 146 // each polygon is made of (N = ptype) points 147 // we connect each point and the last one back 148 for (int i = 0; i < object[0].Npts; i += object[0].ptype) { 149 // first check for any invalid values for this polygon 150 int skipObject = FALSE; 151 for (int j = 0; (j < object[0].ptype) && !skipObject; j++) { 152 int k = i + j; 153 if (!(finite(x[k]) && finite(y[k]))) skipObject = TRUE; 154 } 155 if (skipObject) continue; 156 157 for (int j = 0; (j < object[0].ptype); j++) { 158 int k = i + j; 159 sx0 = x[k]*mxi + y[k]*mxj + bx; 160 sy0 = x[k]*myi + y[k]*myj + by; 161 162 // last point connects to first 163 if (j == object[0].ptype - 1) { 164 sx1 = x[i]*mxi + y[i]*mxj + bx; 165 sy1 = x[i]*myi + y[i]*myj + by; 166 } else { 167 sx1 = x[k+1]*mxi + y[k+1]*mxj + bx; 168 sy1 = x[k+1]*myi + y[k+1]*myj + by; 169 } 170 bDrawClipLine (buffer, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 171 } 172 } 173 } 174 175 void bDrawFillPolygons (bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object) { 176 177 float *x, *y; 178 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 179 double sx0, sy0; 180 // double X0, X1, Y0, Y1; 181 182 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 183 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); 184 myi = graph[0].axis[0].dfy / (object[0].x1 - object[0].x0); 185 myj = graph[0].axis[1].dfy / (object[0].y1 - object[0].y0); 186 187 bxi = graph[0].axis[0].fx - object[0].x0*graph[0].axis[0].dfx/(object[0].x1 - object[0].x0); 188 bxj = -object[0].y0*graph[0].axis[1].dfx/(object[0].y1 - object[0].y0); 189 byi = -object[0].x0*graph[0].axis[0].dfy/(object[0].x1 - object[0].x0); 190 byj = graph[0].axis[1].fy - object[0].y0*graph[0].axis[1].dfy/(object[0].y1 - object[0].y0); 191 192 bx = bxi + bxj; 193 by = byi + byj; 194 195 /* 196 window boundary so we can clip objects 197 X0 = graph[0].axis[0].fx; 198 X1 = graph[0].axis[0].fx + graph[0].axis[0].dfx; 199 Y0 = graph[0].axis[1].fy; 200 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 201 */ 202 203 x = object[0].x; y = object[0].y; 204 205 // ptype must > 2 206 // Npts % ptype must be 0 207 // who must validate that? 208 209 ALLOCATE_PTR (xpts, double, object[0].ptype); 210 ALLOCATE_PTR (ypts, double, object[0].ptype); 211 212 int scaleColor = (object[0].color < 0); 213 unsigned char *pixel1, *pixel2, *pixel3; 214 float *z = object[0].z; 215 216 if (scaleColor) { 217 // scaled colors use the colormap defined for the graphic 218 ALLOCATE (pixel1, unsigned char, graphic[0].Npixels); 219 ALLOCATE (pixel2, unsigned char, graphic[0].Npixels); 220 ALLOCATE (pixel3, unsigned char, graphic[0].Npixels); 221 222 /** cmap[i].pixel must be defined even if X is not used **/ 223 for (int i = 0; i < graphic[0].Npixels; i++) { /* set up pixel array */ 224 pixel1[i] = graphic[0].cmap[i].red >> 8; 225 pixel2[i] = graphic[0].cmap[i].green >> 8; 226 pixel3[i] = graphic[0].cmap[i].blue >> 8; 227 } 228 229 } 230 231 // each polygon is made of (N = ptype) points 232 // we connect each point and the last one back 233 for (int i = 0; i < object[0].Npts; i += object[0].ptype) { 234 // first check for any invalid values for this polygon 235 int skipObject = FALSE; 236 for (int j = 0; (j < object[0].ptype) && !skipObject; j++) { 237 int k = i + j; 238 if (!(finite(x[k]) && finite(y[k]))) skipObject = TRUE; 239 } 240 if (skipObject) continue; 241 242 for (int j = 0; (j < object[0].ptype); j++) { 243 int k = i + j; 244 sx0 = x[k]*mxi + y[k]*mxj + bx; 245 sy0 = x[k]*myi + y[k]*myj + by; 246 247 xpts[j] = sx0; 248 ypts[j] = sy0; 249 } 250 251 if (scaleColor) { 252 if (!finite(z[i])) continue; 253 int pixel = MIN (graphic->Npixels - 2, MAX (0, z[i]*(graphic->Npixels - 1))); 254 buffer->bColor_R = pixel1[pixel]; 255 buffer->bColor_G = pixel2[pixel]; 256 buffer->bColor_B = pixel3[pixel]; 257 } 258 bDrawPolyFill (buffer, xpts, ypts, object[0].ptype); 259 } 260 free (xpts); 261 free (ypts); 107 262 } 108 263 … … 888 1043 // for open circles, only go to the outer radius 889 1044 D = 0; 890 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; }891 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; }892 if (object[0].ptype == 5) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; }893 if (object[0].ptype == 15) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; }1045 if (object[0].ptype == KAPA_POINT_CIRCLE_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1046 if (object[0].ptype == KAPA_POINT_BOX_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1047 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 1048 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 894 1049 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) goto skip_dxp; 895 1050 if (D > fabs(dxp[i]*mxi)) goto skip_dxp; … … 971 1126 // for open circles, only go to the outer radius 972 1127 D = 0; 973 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; }974 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; }975 if (object[0].ptype == 5) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; }976 if (object[0].ptype == 15) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; }1128 if (object[0].ptype == KAPA_POINT_CIRCLE_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1129 if (object[0].ptype == KAPA_POINT_BOX_OPEN ) { D = scaleSize ? dz*z[i] : ds; } 1130 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 1131 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 977 1132 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) goto skip_dyp; 978 1133 if (D > fabs(dyp[i]*myj)) goto skip_dyp; … … 995 1150 skip_dyp: 996 1151 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 997 if (object[0].ptype == 5) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; }998 if (object[0].ptype == 15) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; }1152 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN ) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 1153 if (object[0].ptype == KAPA_POINT_TRIANGLE_OPEN_DOWN) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 999 1154 if (D > fabs(dym[i]*myj)) continue; 1000 1155 sx0 = x[i]*mxi + y[i]*mxj + bx;
Note:
See TracChangeset
for help on using the changeset viewer.
