| 2592 | } // TrackerContextPrivate::computeTransformParamsFromTracksEnd |
| 2593 | |
| 2594 | void |
| 2595 | TrackerContextPrivate::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 | |
| 2630 | void |
| 2631 | TrackerContextPrivate::onCornerPinSolverWatcherFinished() |
no test coverage detected