- Real xmin = 0; Real ymin = 0;
- Real xmax = 0; Real ymax = 0;
-
- for (unsigned i = start_index; i <= end_index; ++i)
- {
- Rect & objb = m_objects.bounds[i];
-
- if (i == start_index || objb.x < xmin)
- xmin = objb.x;
- if (i == start_index || (objb.x+objb.w) > xmax)
- xmax = (objb.x+objb.w);
-
- if (i == start_index || objb.y < ymin)
- ymin = objb.y;
- if (i == start_index || (objb.y+objb.h) > ymax)
- ymax = (objb.y+objb.h);
- }
-
- Rect bounds(xmin,ymin, xmax-xmin, ymax-ymin);
-
- Group group(start_index, end_index, 0U, fill);
-
- unsigned data_index = AddGroupData(group);
- unsigned result = Add(GROUP, bounds,data_index);
+ Path path(m_objects, start_index, end_index, fill);
+ unsigned data_index = AddPathData(path);
+ Rect bounds = path.SolveBounds(m_objects);
+ unsigned result = Add(PATH, bounds,data_index);