void Model::duplicate_objects_grid(size_t x, size_t y, coordf_t dist) { if (this->objects.size() > 1) throw std::runtime_error("Grid duplication is not supported with multiple objects"); if (this->objects.empty()) throw std::runtime_error("No objects!"); ModelObject* object = this->objects.front(); object->clear_instances(); Sizef3 size = object->bounding_box().size(); for (size_t x_copy = 1; x_copy <= x; ++x_copy) { for (size_t y_copy = 1; y_copy <= y; ++y_copy) { ModelInstance* instance = object->add_instance(); instance->offset.x = (size.x + dist) * (x_copy-1); instance->offset.y = (size.y + dist) * (y_copy-1); } } }