Index: trunk/Ohana/src/opihi/cmd.data/vload.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vload.c	(revision 5702)
+++ trunk/Ohana/src/opihi/cmd.data/vload.c	(revision 5846)
@@ -1,13 +1,10 @@
 # include "data.h"
-
-# define NPTYPE 3
-static char ptype[NPTYPE][8] = {"BOX", "LINE", "CIRCLE"};
 
 int vload (int argc, char **argv) {
   
-  int i, N, n, Nline;
-  int Ximage, Nimage;
+  int i, N, Noverlay;
+  int Ximage, Nimage, type;
   double dx, dy, size;
-  char *buffer, *type;
+  KiiOverlay *overlay;
   Vector *vecx, *vecy;
   
@@ -20,18 +17,13 @@
   if (!GetImage (&Ximage, &Nimage)) return (FALSE);
 
-  type = ptype[0];
+  type = KII_OVERLAY_BOX;
   if ((N = get_argument (argc, argv, "-type"))) {
     remove_argument (N, &argc, argv);
-    for (i = 0; i < NPTYPE; i++) {
-      if (!strcasecmp (argv[N], ptype[i])) {
-	type = ptype[i];
-	break;
-      }
-    }
-    if (i == NPTYPE) {
+    type = KiiOverlayTypeByName (argv[N]);
+    remove_argument (N, &argc, argv);
+    if (!type) {
       fprintf (stderr, "unknown Kii point type %s\n", argv[N]);
       return (FALSE);
     }
-    remove_argument (N, &argc, argv);
   }
 
@@ -48,5 +40,9 @@
   }
   
-  if (!SelectOverlay (argv[1], &n)) return (FALSE);
+  if (type == KII_OVERLAY_CIRCLE) {
+    dx = dy = size / 2;
+  } else {
+    dx = dy = size;
+  }    
 
   if ((vecx = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return (FALSE);
@@ -57,33 +53,18 @@
   }
 
-  ALLOCATE (buffer, char, 65536);  /* space for 512 lines of 128 bytes */
-  bzero (buffer, 65536);
-  Nline = 0;
+  Noverlay = vecx[0].Nelements;
+  ALLOCATE (overlay, KiiOverlay, Noverlay);
 
-  SendGraphCommand (Ximage, 4, "LOAD");
-  SendGraphCommand (Ximage, 16, "OVER %9d ", n);
-
-  if (type == ptype[2]) {
-    dx = dy = size / 2;
-  } else {
-    dx = dy = size;
-  }    
-  for (i = 0; i < vecx[0].Nelements; i++) {
-    snprintf (&buffer[Nline*128], 128, "%15s %20.10f %20.10f %20.10f %20.10f ", type, 
-	      vecx[0].elements[i]+0.5, vecy[0].elements[i]+0.5, dx, dy);
-    Nline ++;
-    if (Nline == 512) {
-      SendGraphCommand (Ximage, 16, "NLINES  %7d ", Nline);
-      write (Ximage, buffer, Nline*128);
-      bzero (buffer, 65536);
-      Nline = 0;
-    }
+  for (i = 0; i < Noverlay; i++) {
+    overlay[i].type = type;
+    overlay[i].text = NULL;
+    overlay[i].x = vecx[0].elements[i]+0.5;
+    overlay[i].y = vecy[0].elements[i]+0.5;
+    overlay[i].dx = dx;
+    overlay[i].dy = dy;
   }
 
-  SendGraphCommand (Ximage, 16, "NLINES  %7d ", Nline);
-  write (Ximage, buffer, Nline*128);
-  SendGraphCommand (Ximage, 16, "DONE");
-
-  free (buffer);
+  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  free (overlay);
   return (TRUE);
 }
