X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fprofile.cpp;h=7b9dce52073075de8cb9473ae1fa3dda35ceedde;hb=e5cd9e4fbc577036a0385c985b6b65df8218d0a2;hp=256854b0fca9b4343c81f6f4be4cfe108eaef7f7;hpb=47341c72a70e6cf9d8e963705a50197bbc20a87d;p=r2c2.git diff --git a/source/libmarklin/profile.cpp b/source/libmarklin/profile.cpp index 256854b..7b9dce5 100644 --- a/source/libmarklin/profile.cpp +++ b/source/libmarklin/profile.cpp @@ -13,6 +13,23 @@ using namespace Msp; namespace Marklin { +void Profile::append_point(const Point &p) +{ + points.push_back(p); + if(points.size()==1) + { + min_coords = p; + max_coords = p; + } + else + { + min_coords.x = min(min_coords.x, p.x); + min_coords.y = min(min_coords.y, p.y); + max_coords.x = max(max_coords.x, p.x); + max_coords.y = max(max_coords.y, p.y); + } +} + const Point &Profile::get_point(unsigned i) const { if(i>=points.size()) @@ -37,22 +54,9 @@ Profile::Loader::Loader(Profile &p): add("point", &Loader::point); } -void Profile::Loader::finish() -{ - obj.min_coords = obj.points[0]; - obj.max_coords = obj.points[0]; - for(unsigned i=1; i