MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / computeTransformParamsFromTracks

Method computeTransformParamsFromTracks

Engine/TrackerContextPrivate.cpp:2594–2628  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2592} // TrackerContextPrivate::computeTransformParamsFromTracksEnd
2593
2594void
2595TrackerContextPrivate::computeTransformParamsFromTracks()
2596{
2597#ifndef TRACKER_GENERATE_DATA_SEQUENTIALLY
2598 lastSolveRequest.cpWatcher.reset();
2599 lastSolveRequest.tWatcher.reset( new QFutureWatcher<TransformData>() );
2600 QObject::connect( lastSolveRequest.tWatcher.get(), SIGNAL(finished()), this, SLOT(onTransformSolverWatcherFinished()) );
2601 QObject::connect( lastSolveRequest.tWatcher.get(), SIGNAL(progressValueChanged(int)), this, SLOT(onTransformSolverWatcherProgress(int)) );
2602 std::function<TransformData (const double&)> compute = [=](const double &keyframe) {
2603 return computeTransformParamsFromTracksAtTime(lastSolveRequest.refTime,
2604 keyframe,
2605 lastSolveRequest.jitterPeriod,
2606 lastSolveRequest.jitterAdd,
2607 lastSolveRequest.robustModel,
2608 lastSolveRequest.allMarkers);
2609 };
2610 lastSolveRequest.tWatcher->setFuture( QtConcurrent::mapped( lastSolveRequest.keyframes, compute ) );
2611#else
2612 NodePtr thisNode = node.lock();
2613 QList<TransformData> validResults;
2614 {
2615 int nKeys = lastSolveRequest.keyframes.size();
2616 int keyIndex = 0;
2617 for (std::set<double>::const_iterator it = lastSolveRequest.keyframes.begin(); it != lastSolveRequest.keyframes.end(); ++it, ++keyIndex) {
2618 TransformData data = computeTransformParamsFromTracksAtTime(lastSolveRequest.refTime, *it, lastSolveRequest.jitterPeriod, lastSolveRequest.jitterAdd, lastSolveRequest.robustModel, lastSolveRequest.allMarkers);
2619 if (data.valid) {
2620 validResults.push_back(data);
2621 }
2622 double progress = (keyIndex + 1) / (double)nKeys;
2623 thisNode->getApp()->progressUpdate(thisNode, progress);
2624 }
2625 }
2626 computeTransformParamsFromTracksEnd(lastSolveRequest.refTime, lastSolveRequest.maxFittingError, validResults);
2627#endif
2628} // TrackerContextPrivate::computeTransformParamsFromTracks
2629
2630void
2631TrackerContextPrivate::onCornerPinSolverWatcherFinished()

Callers 1

solveTransformParamsMethod · 0.80

Calls 9

resetMethod · 0.45
getMethod · 0.45
lockMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45
progressUpdateMethod · 0.45
getAppMethod · 0.45

Tested by

no test coverage detected