IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 27530


Ignore:
Timestamp:
Mar 30, 2010, 1:16:44 PM (16 years ago)
Author:
eugene
Message:

add hexagons and pentagons to kapa; default layout for the dvo sky is north up, east left; add photcode selections to dvo images

Location:
trunk/Ohana/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/imregister/src/imphotmerge.c

    r27485 r27530  
    152152  /* check that file size makes sense */
    153153  Nimage = 0;
    154   gfits_scan (header, "NIMAGES", "%lld", 1, &(long long *) Nimage);
     154  gfits_scan (header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
    155155  if (fstat (fileno(f), &filestatus) == -1) {
    156156    fprintf (stderr, "ERROR: failed to get status of image catalog\n");
  • trunk/Ohana/src/kapa2/include/prototypes.h

    r25757 r27530  
    3636int           DrawObjectN         PROTO((KapaGraphWidget *graph, Gobjects *objects));
    3737void          DrawPoints          PROTO((KapaGraphWidget *graph, Gobjects *objects));
     38void          ClipLine            PROTO((double x0, double y0, double x1, double y1, double X0, double Y0, double X1, double Y1));
    3839void          DrawXErrors         PROTO((KapaGraphWidget *graph, Gobjects *objects));
    3940void          DrawYErrors         PROTO((KapaGraphWidget *graph, Gobjects *objects));
  • trunk/Ohana/src/kapa2/src/DrawObjects.c

    r27491 r27530  
    11# include "Ximage.h"
     2
    23# define DrawLine(X1,Y1,X2,Y2) (XDrawLine (graphic->display, graphic->window, graphic->gc, (int)(X1+0.5), (int)(Y1+0.5), (int)(X2+0.5), (int)(Y2+0.5)))
    34# define DrawRectangle(X1,Y1,X2,Y2) (XDrawRectangle (graphic->display, graphic->window, graphic->gc, (int)(X1+0.5), (int)(Y1+0.5), (int)(X2+0.5), (int)(Y2+0.5)))
     
    1011
    1112static Graphic *graphic;
    12 
    13 void ClipLine (double x0, double y0, double x1, double y1, double X0, double Y0, double X1, double Y1);
    1413
    1514/* draw all objects for this Graph */
     
    4039  /* set line type */
    4140  switch (object[0].ltype) {
    42   case 0:
    43     XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);
    44     break;
    45   case 1:
    46     XSetDashes (graphic->display, graphic->gc, 100, dash, 2);
    47     XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);
    48     break;
    49   case 2:
    50     XSetDashes (graphic->display, graphic->gc, 10, dot, 2);
    51     XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);
    52     break;
    53   default:
    54     XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);
    55     break;
     41    case 0:
     42      XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);
     43      break;
     44    case 1:
     45      XSetDashes (graphic->display, graphic->gc, 100, dash, 2);
     46      XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);
     47      break;
     48    case 2:
     49      XSetDashes (graphic->display, graphic->gc, 10, dot, 2);
     50      XSetLineAttributes (graphic->display, graphic->gc, lweight, LineOnOffDash, CapNotLast, JoinMiter);
     51      break;
     52    default:
     53      XSetLineAttributes (graphic->display, graphic->gc, lweight, LineSolid, CapNotLast, JoinMiter);
     54      break;
    5655  }
    5756
     
    5958
    6059  switch (object[0].style) {
    61   case CONNECT:
    62     DrawConnect (graph, object);
    63     break;
    64   case HISTOGRAM:
    65     DrawHistogram (graph, object);
    66     break;
    67   case POINTS:
    68     DrawPoints (graph, object);
    69     break;
     60    case CONNECT:
     61      DrawConnect (graph, object);
     62      break;
     63    case HISTOGRAM:
     64      DrawHistogram (graph, object);
     65      break;
     66    case POINTS:
     67      DrawPoints (graph, object);
     68      break;
    7069  }
    7170   
     
    383382        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    384383            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    385           {
    386             FillRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);
    387           }
     384        {
     385          FillRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);
     386        }
    388387      }
    389388    }
     
    395394        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    396395            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    397           {
    398             DrawRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);
    399           }
     396        {
     397          DrawRectangle (sx - d*z[i], sy - d*z[i], 2*d*z[i], 2*d*z[i]);
     398        }
    400399      }
    401400    }
     
    407406        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    408407            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    409           {
    410             DrawLine (sx - d*z[i], sy, sx + d*z[i] + 1, sy);
    411             DrawLine (sx, sy - d*z[i], sx, sy + d*z[i] + 1);
    412           }
     408        {
     409          DrawLine (sx - d*z[i], sy, sx + d*z[i] + 1, sy);
     410          DrawLine (sx, sy - d*z[i], sx, sy + d*z[i] + 1);
     411        }
    413412      }
    414413    }
     
    420419        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    421420            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    422           {
    423             DrawLine (sx + d*z[i] + 1, sy - d*z[i] - 1, sx - d*z[i], sy + d*z[i]);
    424             DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i] + 1, sy + d*z[i] + 1);
    425           }
     421        {
     422          DrawLine (sx + d*z[i] + 1, sy - d*z[i] - 1, sx - d*z[i], sy + d*z[i]);
     423          DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i] + 1, sy + d*z[i] + 1);
     424        }
    426425      }
    427426    }
     
    434433        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    435434            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    436           {
    437             points[0].x = sx - d*z[i];  points[0].y = sy + 0.58*d*z[i]; 
    438             points[1].x = sx + d*z[i];  points[1].y = sy + 0.58*d*z[i]; 
    439             points[2].x = sx;           points[2].y = sy - 1.15*d*z[i]; 
    440             points[3].x = sx - d*z[i];  points[3].y = sy + 0.58*d*z[i]; 
    441             XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);
    442           }
     435        {
     436          points[0].x = sx - d*z[i];  points[0].y = sy + 0.58*d*z[i]; 
     437          points[1].x = sx + d*z[i];  points[1].y = sy + 0.58*d*z[i]; 
     438          points[2].x = sx;           points[2].y = sy - 1.15*d*z[i]; 
     439          points[3].x = sx - d*z[i];  points[3].y = sy + 0.58*d*z[i]; 
     440          XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);
     441        }
    443442      }
    444443    }
     
    450449        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    451450            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    452           {
    453             DrawLine (sx - d*z[i], sy + 0.58*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
    454             DrawLine (sx + d*z[i], sy + 0.58*d*z[i], sx,          sy - 1.15*d*z[i]);
    455             DrawLine (sx,          sy - 1.15*d*z[i], sx - d*z[i], sy + 0.58*d*z[i]);
    456           }
     451        {
     452          DrawLine (sx - d*z[i], sy + 0.58*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
     453          DrawLine (sx + d*z[i], sy + 0.58*d*z[i], sx,          sy - 1.15*d*z[i]);
     454          DrawLine (sx,          sy - 1.15*d*z[i], sx - d*z[i], sy + 0.58*d*z[i]);
     455        }
    457456      }
    458457    }
     
    464463        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    465464            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    466           {
    467             DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]);
    468             DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]);
    469             DrawLine (sx, sy, sx,          sy - 1.15*d*z[i]);
    470           }
     465        {
     466          DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]);
     467          DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]);
     468          DrawLine (sx, sy, sx,          sy - 1.15*d*z[i]);
     469        }
    471470      }
    472471    }
     
    478477        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    479478            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    480           {
    481             DrawCircle (sx, sy, d*z[i]);
    482           }
     479        {
     480          DrawCircle (sx, sy, d*z[i]);
     481        }
     482      }
     483    }
     484    if (object[0].ptype == 8) { /* pentagon */
     485      for (i = 0; i < object[0].Npts; i++) {
     486        if (!(finite(x[i]) && finite(y[i]))) continue;
     487        sx = x[i]*mxi + y[i]*mxj + bx;
     488        sy = x[i]*myi + y[i]*myj + by;
     489        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     490            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     491        {
     492          DrawLine (sx + 0.00*d*z[i], sy - 1.00*d*z[i], sx + 0.95*d*z[i], sy - 0.31*d*z[i]);
     493          DrawLine (sx + 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.58*d*z[i], sy + 0.81*d*z[i]);
     494          DrawLine (sx + 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.58*d*z[i], sy + 0.81*d*z[i]);
     495          DrawLine (sx - 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.95*d*z[i], sy - 0.31*d*z[i]);
     496          DrawLine (sx - 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.00*d*z[i], sy - 1.00*d*z[i]);
     497        }
     498      }
     499    }
     500    if (object[0].ptype == 9) { /* hexagon */
     501      for (i = 0; i < object[0].Npts; i++) {
     502        if (!(finite(x[i]) && finite(y[i]))) continue;
     503        sx = x[i]*mxi + y[i]*mxj + bx;
     504        sy = x[i]*myi + y[i]*myj + by;
     505        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     506            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     507        {
     508          DrawLine (sx -      d*z[i], sy,               sx - 0.50*d*z[i], sy + 0.87*d*z[i]);
     509          DrawLine (sx - 0.50*d*z[i], sy + 0.87*d*z[i], sx + 0.50*d*z[i], sy + 0.87*d*z[i]);
     510          DrawLine (sx + 0.50*d*z[i], sy + 0.87*d*z[i], sx +      d*z[i], sy);
     511
     512          DrawLine (sx +      d*z[i], sy,               sx + 0.50*d*z[i], sy - 0.87*d*z[i]);
     513          DrawLine (sx + 0.50*d*z[i], sy - 0.87*d*z[i], sx - 0.50*d*z[i], sy - 0.87*d*z[i]);
     514          DrawLine (sx - 0.50*d*z[i], sy - 0.87*d*z[i], sx -      d*z[i], sy);
     515        }
    483516      }
    484517    }
     
    506539        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    507540            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    508           {
    509             FillRectangle (sx - d, sy - d, 2*d, 2*d);
    510           }
     541        {
     542          FillRectangle (sx - d, sy - d, 2*d, 2*d);
     543        }
    511544      }
    512545    }
     
    518551        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    519552            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    520           {
    521             DrawRectangle (sx - d, sy - d, 2*d, 2*d);
    522           }
     553        {
     554          DrawRectangle (sx - d, sy - d, 2*d, 2*d);
     555        }
    523556      }
    524557    }
     
    530563        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    531564            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    532           {
    533             DrawLine (sx - d, sy, sx + d + 1, sy);
    534             DrawLine (sx, sy - d, sx, sy + d + 1);
    535           }
     565        {
     566          DrawLine (sx - d, sy, sx + d + 1, sy);
     567          DrawLine (sx, sy - d, sx, sy + d + 1);
     568        }
    536569      }
    537570    }
     
    543576        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    544577            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    545           {
    546             /* XDrawLine is a little funny, this is needed to fix endpost errors */
    547             DrawLine (sx + d + 1, sy - d - 1, sx - d, sy + d);
    548             DrawLine (sx - d, sy - d, sx + d + 1, sy + d + 1);
    549           }
     578        {
     579          /* XDrawLine is a little funny, this is needed to fix endpost errors */
     580          DrawLine (sx + d + 1, sy - d - 1, sx - d, sy + d);
     581          DrawLine (sx - d, sy - d, sx + d + 1, sy + d + 1);
     582        }
    550583      }
    551584    }
     
    558591        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    559592            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    560           {
    561             points[0].x = sx - d;  points[0].y = sy + 0.58*d; 
    562             points[1].x = sx + d;  points[1].y = sy + 0.58*d; 
    563             points[2].x = sx;      points[2].y = sy - 1.15*d; 
    564             points[3].x = sx - d;  points[3].y = sy + 0.58*d; 
    565             XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);
    566           }
     593        {
     594          points[0].x = sx - d;  points[0].y = sy + 0.58*d; 
     595          points[1].x = sx + d;  points[1].y = sy + 0.58*d; 
     596          points[2].x = sx;      points[2].y = sy - 1.15*d; 
     597          points[3].x = sx - d;  points[3].y = sy + 0.58*d; 
     598          XFillPolygon (graphic->display, graphic->window, graphic->gc, points, 4, Convex, CoordModeOrigin);
     599        }
    567600      }
    568601    }
     
    574607        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    575608            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    576           {
    577             DrawLine (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d);
    578             DrawLine (sx + d, sy + 0.58*d, sx,     sy - 1.15*d);
    579             DrawLine (sx,     sy - 1.15*d, sx - d, sy + 0.58*d);
    580           }
     609        {
     610          DrawLine (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d);
     611          DrawLine (sx + d, sy + 0.58*d, sx,     sy - 1.15*d);
     612          DrawLine (sx,     sy - 1.15*d, sx - d, sy + 0.58*d);
     613        }
    581614      }
    582615    }
     
    588621        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    589622            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    590           {
    591             DrawLine (sx, sy, sx - d, sy + 0.58*d);
    592             DrawLine (sx, sy, sx + d, sy + 0.58*d);
    593             DrawLine (sx, sy, sx,     sy - 1.15*d);
    594           }
     623        {
     624          DrawLine (sx, sy, sx - d, sy + 0.58*d);
     625          DrawLine (sx, sy, sx + d, sy + 0.58*d);
     626          DrawLine (sx, sy, sx,     sy - 1.15*d);
     627        }
    595628      }
    596629    }
     
    602635        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    603636            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    604           {
    605             DrawCircle (sx, sy, d);
    606           }
     637        {
     638          DrawCircle (sx, sy, d);
     639        }
     640      }
     641    }
     642    if (object[0].ptype == 8) { /* pentagon */
     643      for (i = 0; i < object[0].Npts; i++) {
     644        if (!(finite(x[i]) && finite(y[i]))) continue;
     645        sx = x[i]*mxi + y[i]*mxj + bx;
     646        sy = x[i]*myi + y[i]*myj + by;
     647        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     648            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     649        {
     650          DrawLine (sx + 0.00*d, sy - 1.00*d, sx + 0.95*d, sy - 0.31*d);
     651          DrawLine (sx + 0.95*d, sy - 0.31*d, sx + 0.58*d, sy + 0.81*d);
     652          DrawLine (sx + 0.58*d, sy + 0.81*d, sx - 0.58*d, sy + 0.81*d);
     653          DrawLine (sx - 0.58*d, sy + 0.81*d, sx - 0.95*d, sy - 0.31*d);
     654          DrawLine (sx - 0.95*d, sy - 0.31*d, sx + 0.00*d, sy - 1.00*d);
     655        }
     656      }
     657    }
     658    if (object[0].ptype == 9) { /* pentagon */
     659      for (i = 0; i < object[0].Npts; i++) {
     660        if (!(finite(x[i]) && finite(y[i]))) continue;
     661        sx = x[i]*mxi + y[i]*mxj + bx;
     662        sy = x[i]*myi + y[i]*myj + by;
     663        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     664            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     665        {
     666          DrawLine (sx - 1.00*d, sy + 0.00*d, sx - 0.50*d, sy + 0.87*d);
     667          DrawLine (sx - 0.50*d, sy + 0.87*d, sx + 0.50*d, sy + 0.87*d);
     668          DrawLine (sx + 0.50*d, sy + 0.87*d, sx + 1.00*d, sy + 0.00*d);
     669          DrawLine (sx + 1.00*d, sy + 0.00*d, sx + 0.50*d, sy - 0.87*d);
     670          DrawLine (sx + 0.50*d, sy - 0.87*d, sx - 0.50*d, sy - 0.87*d);
     671          DrawLine (sx - 0.50*d, sy - 0.87*d, sx - 1.00*d, sy + 0.00*d);
     672        }
    607673      }
    608674    }
     
    654720        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    655721         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    656       {
    657         DrawLine (sx0, sy0, sx1, sy1);
    658         if (bar) {
    659           sx10 = sy1 - sz;
    660           sx11 = sy1 + sz;
    661           DrawLine (sx1, sx10, sx1, sx11);
    662         }
    663       }
     722    {
     723      DrawLine (sx0, sy0, sx1, sy1);
     724      if (bar) {
     725        sx10 = sy1 - sz;
     726        sx11 = sy1 + sz;
     727        DrawLine (sx1, sx10, sx1, sx11);
     728      }
     729    }
    664730    if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue;
    665731    sx0 = x[i]*mxi + y[i]*mxj + bx;
     
    671737        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    672738         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    673       {
    674         DrawLine (sx0, sy0, sx1, sy1);
    675         if (bar) {
    676           sx10 = sy1 - sz;
    677           sx11 = sy1 + sz;
    678           DrawLine (sx1, sx10, sx1, sx11);
    679         }
    680       }
     739    {
     740      DrawLine (sx0, sy0, sx1, sy1);
     741      if (bar) {
     742        sx10 = sy1 - sz;
     743        sx11 = sy1 + sz;
     744        DrawLine (sx1, sx10, sx1, sx11);
     745      }
     746    }
    681747  }
    682748}
     
    716782        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    717783         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    718       {
    719         DrawLine (sx0, sy0, sx1, sy1);
    720         if (bar) {
    721           sx10 = sx1 - sz;
    722           sx11 = sx1 + sz;
    723           DrawLine (sx10, sy1, sx11, sy1);
    724         }
    725       }
     784    {
     785      DrawLine (sx0, sy0, sx1, sy1);
     786      if (bar) {
     787        sx10 = sx1 - sz;
     788        sx11 = sx1 + sz;
     789        DrawLine (sx10, sy1, sx11, sy1);
     790      }
     791    }
    726792    if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue;
    727793    sx0 = x[i]*mxi + y[i]*mxj + bx;
     
    733799        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    734800         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    735       {
    736         DrawLine (sx0, sy0, sx1, sy1);
    737         if (bar) {
    738           sx10 = sx1 - sz;
    739           sx11 = sx1 + sz;
    740           DrawLine (sx10, sy1, sx11, sy1);
    741         }
    742       }
     801    {
     802      DrawLine (sx0, sy0, sx1, sy1);
     803      if (bar) {
     804        sx10 = sx1 - sz;
     805        sx11 = sx1 + sz;
     806        DrawLine (sx10, sy1, sx11, sy1);
     807      }
     808    }
    743809  }
    744810}
  • trunk/Ohana/src/kapa2/src/Graphs.c

    r18429 r27530  
    3636  graph[0].data.lweight = 0.5;          // line weight of 0.5
    3737  graph[0].data.size    = 1.0;          // point size of 1.0
     38
     39  graph[0].data.flipeast  = 1;          // +East  = -X by default
     40  graph[0].data.flipnorth = 0;          // +North = +Y by default
    3841
    3942  graph[0].Nobjects = 0;
  • trunk/Ohana/src/kapa2/src/PSObjects.c

    r13320 r27530  
    342342      }
    343343    }
     344    if (object[0].ptype == 8) { /* pentagon */
     345      for (i = 0; i < object[0].Npts; i++) {
     346        if (!(finite(x[i]) && finite(y[i]))) continue;
     347        sx = x[i]*mxi + y[i]*mxj + bx;
     348        sy = x[i]*myi + y[i]*myj + by;
     349        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     350            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     351        {
     352          DrawLine (sx + 0.00*d*z[i], sy + 1.00*d*z[i], sx + 0.95*d*z[i], sy + 0.31*d*z[i]);
     353          DrawLine (sx + 0.95*d*z[i], sy + 0.31*d*z[i], sx + 0.58*d*z[i], sy - 0.81*d*z[i]);
     354          DrawLine (sx + 0.58*d*z[i], sy - 0.81*d*z[i], sx - 0.58*d*z[i], sy - 0.81*d*z[i]);
     355          DrawLine (sx - 0.58*d*z[i], sy - 0.81*d*z[i], sx - 0.95*d*z[i], sy + 0.31*d*z[i]);
     356          DrawLine (sx - 0.95*d*z[i], sy + 0.31*d*z[i], sx + 0.00*d*z[i], sy + 1.00*d*z[i]);
     357        }
     358      }
     359    }
     360    if (object[0].ptype == 9) { /* hexagon */
     361      for (i = 0; i < object[0].Npts; i++) {
     362        if (!(finite(x[i]) && finite(y[i]))) continue;
     363        sx = x[i]*mxi + y[i]*mxj + bx;
     364        sy = x[i]*myi + y[i]*myj + by;
     365        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     366            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     367        {
     368          DrawLine (sx -      d*z[i], sy,               sx - 0.50*d*z[i], sy + 0.87*d*z[i]);
     369          DrawLine (sx - 0.50*d*z[i], sy + 0.87*d*z[i], sx + 0.50*d*z[i], sy + 0.87*d*z[i]);
     370          DrawLine (sx + 0.50*d*z[i], sy + 0.87*d*z[i], sx +      d*z[i], sy);
     371
     372          DrawLine (sx +      d*z[i], sy,               sx + 0.50*d*z[i], sy - 0.87*d*z[i]);
     373          DrawLine (sx + 0.50*d*z[i], sy - 0.87*d*z[i], sx - 0.50*d*z[i], sy - 0.87*d*z[i]);
     374          DrawLine (sx - 0.50*d*z[i], sy - 0.87*d*z[i], sx -      d*z[i], sy);
     375        }
     376      }
     377    }
    344378    if (object[0].ptype == 100) {       /* connect a pair of points */
    345379      for (i = 0; i + 1 < object[0].Npts; i+=2) {
     
    460494            DrawCircle (sx, sy, d);
    461495          }
     496      }
     497    }
     498    if (object[0].ptype == 8) { /* pentagon */
     499      for (i = 0; i < object[0].Npts; i++) {
     500        if (!(finite(x[i]) && finite(y[i]))) continue;
     501        sx = x[i]*mxi + y[i]*mxj + bx;
     502        sy = x[i]*myi + y[i]*myj + by;
     503        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     504            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     505        {
     506          DrawLine (sx + 0.00*d, sy + 1.00*d, sx + 0.95*d, sy + 0.31*d);
     507          DrawLine (sx + 0.95*d, sy + 0.31*d, sx + 0.58*d, sy - 0.81*d);
     508          DrawLine (sx + 0.58*d, sy - 0.81*d, sx - 0.58*d, sy - 0.81*d);
     509          DrawLine (sx - 0.58*d, sy - 0.81*d, sx - 0.95*d, sy + 0.31*d);
     510          DrawLine (sx - 0.95*d, sy + 0.31*d, sx + 0.00*d, sy + 1.00*d);
     511        }
     512      }
     513    }
     514    if (object[0].ptype == 9) { /* pentagon */
     515      for (i = 0; i < object[0].Npts; i++) {
     516        if (!(finite(x[i]) && finite(y[i]))) continue;
     517        sx = x[i]*mxi + y[i]*mxj + bx;
     518        sy = x[i]*myi + y[i]*myj + by;
     519        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     520            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     521        {
     522          DrawLine (sx - 1.00*d, sy + 0.00*d, sx - 0.50*d, sy + 0.87*d);
     523          DrawLine (sx - 0.50*d, sy + 0.87*d, sx + 0.50*d, sy + 0.87*d);
     524          DrawLine (sx + 0.50*d, sy + 0.87*d, sx + 1.00*d, sy + 0.00*d);
     525          DrawLine (sx + 1.00*d, sy + 0.00*d, sx + 0.50*d, sy - 0.87*d);
     526          DrawLine (sx + 0.50*d, sy - 0.87*d, sx - 0.50*d, sy - 0.87*d);
     527          DrawLine (sx - 0.50*d, sy - 0.87*d, sx - 1.00*d, sy + 0.00*d);
     528        }
    462529      }
    463530    }
  • trunk/Ohana/src/kapa2/src/bDrawObjects.c

    r13320 r27530  
    77# define FillTriangle(X1,Y1,X2,Y2,X3,Y3) (bDrawTriFill ((X1), (Y1), (X2), (Y2), (X3), (Y3)))
    88# define OpenTriangle(X1,Y1,X2,Y2,X3,Y3) (bDrawTriOpen ((X1), (Y1), (X2), (Y2), (X3), (Y3)))
     9
    910# define CONNECT 0
    1011# define HISTOGRAM 1
     
    3233
    3334    switch (graph[0].objects[i].style) {
    34     case CONNECT:
    35       bDrawConnect (graph, &graph[0].objects[i]);
    36       break;
    37     case HISTOGRAM:
    38       bDrawHistogram (graph, &graph[0].objects[i]);
    39       break;
    40     case POINTS:
    41       bDrawPoints (graph, &graph[0].objects[i]);
    42       break;
     35      case CONNECT:
     36        bDrawConnect (graph, &graph[0].objects[i]);
     37        break;
     38      case HISTOGRAM:
     39        bDrawHistogram (graph, &graph[0].objects[i]);
     40        break;
     41      case POINTS:
     42        bDrawPoints (graph, &graph[0].objects[i]);
     43        break;
    4344    }
    4445
     
    231232        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    232233            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    233           {
    234             FillRectangle (sx, sy, 2*d*z[i], 2*d*z[i]);
    235           }
     234        {
     235          FillRectangle (sx, sy, 2*d*z[i], 2*d*z[i]);
     236        }
    236237      }
    237238    }
     
    243244        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    244245            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    245           {
    246             DrawRectangle (sx, sy, 2*d*z[i], 2*d*z[i]);
    247           }
     246        {
     247          DrawRectangle (sx, sy, 2*d*z[i], 2*d*z[i]);
     248        }
    248249      }
    249250    }
     
    255256        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    256257            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    257           {
    258             DrawLine (sx - d*z[i], sy, sx + d*z[i], sy);
    259             DrawLine (sx, sy - d*z[i], sx, sy + d*z[i]);
    260           }
     258        {
     259          DrawLine (sx - d*z[i], sy, sx + d*z[i], sy);
     260          DrawLine (sx, sy - d*z[i], sx, sy + d*z[i]);
     261        }
    261262      }
    262263    }
     
    268269        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    269270            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    270           {
    271             DrawLine (sx + d*z[i], sy - d*z[i], sx - d*z[i], sy + d*z[i]);
    272             DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i], sy + d*z[i]);
    273           }
     271        {
     272          DrawLine (sx + d*z[i], sy - d*z[i], sx - d*z[i], sy + d*z[i]);
     273          DrawLine (sx - d*z[i], sy - d*z[i], sx + d*z[i], sy + d*z[i]);
     274        }
    274275      }
    275276    }
     
    281282        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    282283            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    283           {
    284             FillTriangle (sx - d*z[i], sy - 0.58*d*z[i], sx + d*z[i], sy - 0.58*d*z[i], sx, sy + 1.15*d*z[i]);
    285           }
     284        {
     285          FillTriangle (sx - d*z[i], sy - 0.58*d*z[i], sx + d*z[i], sy - 0.58*d*z[i], sx, sy + 1.15*d*z[i]);
     286        }
    286287      }
    287288    }
     
    293294        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    294295            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    295           {
    296             OpenTriangle (sx - d*z[i], sy + 0.58*d*z[i], sx, sy - 1.15*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
    297           }
     296        {
     297          OpenTriangle (sx - d*z[i], sy + 0.58*d*z[i], sx, sy - 1.15*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
     298        }
    298299      }
    299300    }
     
    305306        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    306307            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    307           {
    308             DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]);
    309             DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]);
    310             DrawLine (sx, sy, sx,          sy - 1.15*d*z[i]);
    311           }
     308        {
     309          DrawLine (sx, sy, sx - d*z[i], sy + 0.58*d*z[i]);
     310          DrawLine (sx, sy, sx + d*z[i], sy + 0.58*d*z[i]);
     311          DrawLine (sx, sy, sx,          sy - 1.15*d*z[i]);
     312        }
    312313      }
    313314    }
     
    319320        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    320321            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    321           {
    322             DrawCircle (sx, sy, d*z[i]);
    323           }
     322        {
     323          DrawCircle (sx, sy, d*z[i]);
     324        }
     325      }
     326    }
     327    if (object[0].ptype == 8) { /* pentagon */
     328      for (i = 0; i < object[0].Npts; i++) {
     329        if (!(finite(x[i]) && finite(y[i]))) continue;
     330        sx = x[i]*mxi + y[i]*mxj + bx;
     331        sy = x[i]*myi + y[i]*myj + by;
     332        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     333            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     334        {
     335          DrawLine (sx + 0.00*d*z[i], sy - 1.00*d*z[i], sx + 0.95*d*z[i], sy - 0.31*d*z[i]);
     336          DrawLine (sx + 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.58*d*z[i], sy + 0.81*d*z[i]);
     337          DrawLine (sx + 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.58*d*z[i], sy + 0.81*d*z[i]);
     338          DrawLine (sx - 0.58*d*z[i], sy + 0.81*d*z[i], sx - 0.95*d*z[i], sy - 0.31*d*z[i]);
     339          DrawLine (sx - 0.95*d*z[i], sy - 0.31*d*z[i], sx + 0.00*d*z[i], sy - 1.00*d*z[i]);
     340        }
     341      }
     342    }
     343    if (object[0].ptype == 9) { /* hexagon */
     344      for (i = 0; i < object[0].Npts; i++) {
     345        if (!(finite(x[i]) && finite(y[i]))) continue;
     346        sx = x[i]*mxi + y[i]*mxj + bx;
     347        sy = x[i]*myi + y[i]*myj + by;
     348        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     349            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     350        {
     351          DrawLine (sx -      d*z[i], sy,               sx - 0.50*d*z[i], sy + 0.87*d*z[i]);
     352          DrawLine (sx - 0.50*d*z[i], sy + 0.87*d*z[i], sx + 0.50*d*z[i], sy + 0.87*d*z[i]);
     353          DrawLine (sx + 0.50*d*z[i], sy + 0.87*d*z[i], sx +      d*z[i], sy);
     354
     355          DrawLine (sx +      d*z[i], sy,               sx + 0.50*d*z[i], sy - 0.87*d*z[i]);
     356          DrawLine (sx + 0.50*d*z[i], sy - 0.87*d*z[i], sx - 0.50*d*z[i], sy - 0.87*d*z[i]);
     357          DrawLine (sx - 0.50*d*z[i], sy - 0.87*d*z[i], sx -      d*z[i], sy);
     358        }
    324359      }
    325360    }
     
    344379        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    345380            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    346           {
    347             FillRectangle (sx, sy, 2*d, 2*d);
    348           }
     381        {
     382          FillRectangle (sx, sy, 2*d, 2*d);
     383        }
    349384      }
    350385    }
     
    354389        sx = x[i]*mxi + y[i]*mxj + bx;
    355390        sy = x[i]*myi + y[i]*myj + by;
    356         if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    357             (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    358           {
    359             DrawRectangle (sx, sy, 2*d, 2*d);
    360           }
     391        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     392            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     393        {
     394          DrawRectangle (sx, sy, 2*d, 2*d);
     395        }
    361396      }
    362397    }
     
    368403        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    369404            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    370           {
    371             DrawLine (sx - d, sy, sx + d, sy);
    372             DrawLine (sx, sy - d, sx, sy + d);
    373           }
     405        {
     406          DrawLine (sx - d, sy, sx + d, sy);
     407          DrawLine (sx, sy - d, sx, sy + d);
     408        }
    374409      }
    375410    }
     
    381416        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    382417            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    383           {
    384             DrawLine (sx + d, sy - d, sx - d, sy + d);
    385             DrawLine (sx - d, sy - d, sx + d, sy + d);
    386           }
     418        {
     419          DrawLine (sx + d, sy - d, sx - d, sy + d);
     420          DrawLine (sx - d, sy - d, sx + d, sy + d);
     421        }
    387422      }
    388423    }
     
    394429        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    395430            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    396           {
    397             FillTriangle (sx - d, sy - 0.58*d, sx + d, sy - 0.58*d, sx, sy + 1.15*d);
    398           }
     431        {
     432          FillTriangle (sx - d, sy - 0.58*d, sx + d, sy - 0.58*d, sx, sy + 1.15*d);
     433        }
    399434      }
    400435    }
     
    406441        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    407442            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    408           {
    409             OpenTriangle (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d, sx, sy - 1.15*d);
    410           }
     443        {
     444          OpenTriangle (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d, sx, sy - 1.15*d);
     445        }
    411446      }
    412447    }
     
    418453        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    419454            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    420           {
    421             DrawLine (sx, sy, sx - d, sy - 0.58*d);
    422             DrawLine (sx, sy, sx + d, sy - 0.58*d);
    423             DrawLine (sx, sy, sx,     sy + 1.15*d);
    424           }
     455        {
     456          DrawLine (sx, sy, sx - d, sy - 0.58*d);
     457          DrawLine (sx, sy, sx + d, sy - 0.58*d);
     458          DrawLine (sx, sy, sx,     sy + 1.15*d);
     459        }
    425460      }
    426461    }
     
    432467        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    433468            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
    434           {
    435             DrawCircle (sx, sy, d);
    436           }
     469        {
     470          DrawCircle (sx, sy, d);
     471        }
     472      }
     473    }
     474    if (object[0].ptype == 8) { /* pentagon */
     475      for (i = 0; i < object[0].Npts; i++) {
     476        if (!(finite(x[i]) && finite(y[i]))) continue;
     477        sx = x[i]*mxi + y[i]*mxj + bx;
     478        sy = x[i]*myi + y[i]*myj + by;
     479        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     480            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     481        {
     482          DrawLine (sx + 0.00*d, sy - 1.00*d, sx + 0.95*d, sy - 0.31*d);
     483          DrawLine (sx + 0.95*d, sy - 0.31*d, sx + 0.58*d, sy + 0.81*d);
     484          DrawLine (sx + 0.58*d, sy + 0.81*d, sx - 0.58*d, sy + 0.81*d);
     485          DrawLine (sx - 0.58*d, sy + 0.81*d, sx - 0.95*d, sy - 0.31*d);
     486          DrawLine (sx - 0.95*d, sy - 0.31*d, sx + 0.00*d, sy - 1.00*d);
     487        }
     488      }
     489    }
     490    if (object[0].ptype == 9) { /* pentagon */
     491      for (i = 0; i < object[0].Npts; i++) {
     492        if (!(finite(x[i]) && finite(y[i]))) continue;
     493        sx = x[i]*mxi + y[i]*mxj + bx;
     494        sy = x[i]*myi + y[i]*myj + by;
     495        if ((sx > graph[0].axis[0].fx) && (sx < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
     496            (sy < graph[0].axis[1].fy) && (sy > graph[0].axis[1].fy + graph[0].axis[1].dfy))
     497        {
     498          DrawLine (sx - 1.00*d, sy + 0.00*d, sx - 0.50*d, sy + 0.87*d);
     499          DrawLine (sx - 0.50*d, sy + 0.87*d, sx + 0.50*d, sy + 0.87*d);
     500          DrawLine (sx + 0.50*d, sy + 0.87*d, sx + 1.00*d, sy + 0.00*d);
     501          DrawLine (sx + 1.00*d, sy + 0.00*d, sx + 0.50*d, sy - 0.87*d);
     502          DrawLine (sx + 0.50*d, sy - 0.87*d, sx - 0.50*d, sy - 0.87*d);
     503          DrawLine (sx - 0.50*d, sy - 0.87*d, sx - 1.00*d, sy + 0.00*d);
     504        }
    437505      }
    438506    }
     
    484552        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    485553         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    486       {
    487         DrawLine (sx0, sy0, sx1, sy1);
    488         if (bar) {
    489           sx10 = sy1 - sz;
    490           sx11 = sy1 + sz;
    491           DrawLine (sx1, sx10, sx1, sx11);
    492         }
    493       }
     554    {
     555      DrawLine (sx0, sy0, sx1, sy1);
     556      if (bar) {
     557        sx10 = sy1 - sz;
     558        sx11 = sy1 + sz;
     559        DrawLine (sx1, sx10, sx1, sx11);
     560      }
     561    }
    494562    if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue;
    495563    sx0 = x[i]*mxi + y[i]*mxj + bx;
     
    501569        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    502570         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    503       {
    504         DrawLine (sx0, sy0, sx1, sy1);
    505         if (bar) {
    506           sx10 = sy1 - sz;
    507           sx11 = sy1 + sz;
    508           DrawLine (sx1, sx10, sx1, sx11);
    509         }
    510       }
     571    {
     572      DrawLine (sx0, sy0, sx1, sy1);
     573      if (bar) {
     574        sx10 = sy1 - sz;
     575        sx11 = sy1 + sz;
     576        DrawLine (sx1, sx10, sx1, sx11);
     577      }
     578    }
    511579  }
    512580}
     
    546614        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    547615         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    548       {
    549         DrawLine (sx0, sy0, sx1, sy1);
    550         if (bar) {
    551           sx10 = sx1 - sz;
    552           sx11 = sx1 + sz;
    553           DrawLine (sx10, sy1, sx11, sy1);
    554         }
    555       }
     616    {
     617      DrawLine (sx0, sy0, sx1, sy1);
     618      if (bar) {
     619        sx10 = sx1 - sz;
     620        sx11 = sx1 + sz;
     621        DrawLine (sx10, sy1, sx11, sy1);
     622      }
     623    }
    556624    if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue;
    557625    sx0 = x[i]*mxi + y[i]*mxj + bx;
     
    563631        ((sx1 > graph[0].axis[0].fx) && (sx1 < graph[0].axis[0].fx + graph[0].axis[0].dfx) &&
    564632         (sy1 < graph[0].axis[1].fy) && (sy1 > graph[0].axis[1].fy + graph[0].axis[1].dfy)))
    565       {
    566         DrawLine (sx0, sy0, sx1, sy1);
    567         if (bar) {
    568           sx10 = sx1 - sz;
    569           sx11 = sx1 + sz;
    570           DrawLine (sx10, sy1, sx11, sy1);
    571         }
    572       }
     633    {
     634      DrawLine (sx0, sy0, sx1, sy1);
     635      if (bar) {
     636        sx10 = sx1 - sz;
     637        sx11 = sx1 + sz;
     638        DrawLine (sx10, sy1, sx11, sy1);
     639      }
     640    }
    573641  }
    574642}
  • trunk/Ohana/src/opihi/dvo/images.c

    r27435 r27530  
    2222  char name[256];
    2323  int typehash;
    24 
     24  PhotCode *photcode;
     25  int Nsec, photcodeEquiv;
     26
     27  if (!InitPhotcodes ()) return (FALSE);
    2528  if (!style_args (&graphmode, &argc, argv, &kapa)) goto usage;
    2629
     
    4245    remove_argument (N, &argc, argv);
    4346    HIDDEN = TRUE;
     47  }
     48
     49  photcode = NULL;
     50  photcodeEquiv = FALSE;
     51  if ((N = get_argument (argc, argv, "-p"))) {
     52    remove_argument (N, &argc, argv);
     53    photcode = GetPhotcodebyName (argv[N]);
     54    if (photcode == NULL) {
     55      gprint (GP_ERR, "photcode %s not found\n", argv[N]);
     56      return FALSE;
     57    }
     58    remove_argument (N, &argc, argv);
     59    Nsec = GetPhotcodeNsec (photcode->code);
     60    if (Nsec != -1) photcodeEquiv = TRUE;
     61  }
     62  if ((N = get_argument (argc, argv, "-photcode"))) {
     63    remove_argument (N, &argc, argv);
     64    photcode = GetPhotcodebyName (argv[N]);
     65    if (photcode == NULL) {
     66      gprint (GP_ERR, "photcode %s not found\n", argv[N]);
     67      return FALSE;
     68    }
     69    remove_argument (N, &argc, argv);
     70    Nsec = GetPhotcodeNsec (photcode->code);
     71    if (Nsec != -1) photcodeEquiv = TRUE;
    4472  }
    4573
     
    123151    if (TimeSelect && ((image[i].tzero < tzero) || (image[i].tzero+image[i].trate*image[i].NY > tzero + trange))) continue;
    124152    if (!FindMosaicForImage (image, Nimage, i)) continue;
     153    if (photcode) {
     154      if ( photcodeEquiv && (photcode[0].code != GetPhotcodeEquivCodebyCode(image[i].photcode))) continue;
     155      if (!photcodeEquiv && (photcode[0].code != image[i].photcode)) continue;
     156    }
    125157
    126158    Npts = 4;
Note: See TracChangeset for help on using the changeset viewer.