MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / processRecomputeRequest

Function processRecomputeRequest

src/App/Application.cpp:256–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

254}
255
256RecomputeResult processRecomputeRequest(RecomputeRequest& request)
257{
258 RecomputeResult result;
259
260 try {
261 if (Document* document = request.resolveDocument()) {
262 document->recompute({}, request.force, nullptr, request.options);
263 }
264
265 if (DocumentObject* documentObject = request.resolveDocumentObject()) {
266 documentObject->recomputeFeature(request.recursive);
267 }
268 }
269 catch (Base::BadGraphError& exception) {
270 result.exception = std::make_unique<Base::BadGraphError>(std::move(exception));
271 result.failure = RecomputeFailure::DependencyCycle;
272 result.success = false;
273 }
274 catch (Base::Exception& exception) {
275 reportRecomputeException(exception);
276 result.exception = std::make_unique<Base::Exception>(std::move(exception));
277 result.failure = RecomputeFailure::Exception;
278 result.success = false;
279 }
280
281 return result;
282}
283
284} // namespace
285

Callers 2

queueRecomputeRequestMethod · 0.85
recomputeWorkerMethod · 0.85

Calls 6

reportRecomputeExceptionFunction · 0.85
resolveDocumentMethod · 0.80
resolveDocumentObjectMethod · 0.80
moveFunction · 0.50
recomputeMethod · 0.45
recomputeFeatureMethod · 0.45

Tested by

no test coverage detected