223 reset(); |
223 reset(); |
224 |
224 |
225 if (not getCurrentDocument()) |
225 if (not getCurrentDocument()) |
226 return; |
226 return; |
227 |
227 |
228 for (LDObject* obj : getCurrentDocument()->objects()) |
228 for (LDObjectPtr obj : getCurrentDocument()->objects()) |
229 calcObject (obj); |
229 calcObject (obj); |
230 } |
230 } |
231 |
231 |
232 // ============================================================================= |
232 // ============================================================================= |
233 // |
233 // |
234 void LDBoundingBox::calcObject (LDObject* obj) |
234 void LDBoundingBox::calcObject (LDObjectPtr obj) |
235 { |
235 { |
236 switch (obj->type()) |
236 switch (obj->type()) |
237 { |
237 { |
238 case LDObject::ELine: |
238 case LDObject::ELine: |
239 case LDObject::ETriangle: |
239 case LDObject::ETriangle: |
244 calcVertex (obj->vertex (i)); |
244 calcVertex (obj->vertex (i)); |
245 } break; |
245 } break; |
246 |
246 |
247 case LDObject::ESubfile: |
247 case LDObject::ESubfile: |
248 { |
248 { |
249 LDSubfile* ref = static_cast<LDSubfile*> (obj); |
249 LDSubfilePtr ref = obj.staticCast<LDSubfile>(); |
250 LDObjectList objs = ref->inlineContents (true, false); |
250 LDObjectList objs = ref->inlineContents (true, false); |
251 |
251 |
252 for (LDObject * obj : objs) |
252 for (LDObjectPtr obj : objs) |
253 { |
253 { |
254 calcObject (obj); |
254 calcObject (obj); |
255 obj->destroy(); |
255 obj->destroy(); |
256 } |
256 } |
257 } |
257 } |