]> Shamusworld >> Repos - architektonas/blobdiff - src/fileio.cpp
Further progress on Polylines: Polylines can be selected and moved.
[architektonas] / src / fileio.cpp
index ad303f469cdcb0713a9afcb4e67533c1b428c3f3..8058a41d490aba1d0e7b79847e8067326fb61a3c 100644 (file)
@@ -413,16 +413,22 @@ if (errno)
        else if (strcmp(buffer, "POLYLINE") == 0)
        {
                long int size;
-               obj = (Object *)new Polyline();
+               std::vector<Point> pts;
+               uint32_t color;
+               float thickness;
+               int style;
+
                fscanf(file, "(%li)", &size);
-               fscanf(file, " (%i, %f, %i)\n", &obj->color, &obj->thickness, &obj->style);
+               fscanf(file, " (%i, %f, %i)\n", &color, &thickness, &style);
 
                for(int i=0; i<size; i++)
                {
-                       Object * po = new Object();
-                       fscanf(file, "(%lf,%lf,%lf)\n", &po->p[0].x, &po->p[0].y, &po->length);
-                       ((Polyline *)obj)->Add(po);
+                       Point p;
+                       fscanf(file, "(%lf,%lf,%lf)\n", &p.x, &p.y, &p.b);
+                       pts.push_back(p);
                }
+
+               obj = (Object *)new Polyline(pts, thickness, color, style);
        }
        else if (strcmp(buffer, "TEXT") == 0)
        {
@@ -496,10 +502,9 @@ if (errno)
                fprintf(file, "POLYLINE %i (%li)", p->layer, p->points.size());
                fprintf(file, " (%i, %f, %i)\n", obj->color, obj->thickness, obj->style);
 
-               for(VPVectorIter i=p->points.begin(); i!=p->points.end(); i++)
+               for(long unsigned int i=0; i<p->points.size(); i++)
                {
-                       Object * po = (Object *)(*i);
-                       fprintf(file, "(%.16lf,%.16lf,%.16lf)\n", po->p[0].x, po->p[0].y, po->length);
+                       fprintf(file, "(%.16lf,%.16lf,%.16lf)\n", p->points[i].x, p->points[i].y, p->points[i].b);
                }
        }
                break;