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

Method trackStepFunctor

Engine/TrackerContext.cpp:1756–1785  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1754}
1755
1756bool
1757TrackSchedulerPrivate::trackStepFunctor(int trackIndex,
1758 const TrackArgs& args,
1759 int time)
1760{
1761 assert( trackIndex >= 0 && trackIndex < args.getNumTracks() );
1762 const std::vector<TrackMarkerAndOptionsPtr>& tracks = args.getTracks();
1763 const TrackMarkerAndOptionsPtr& track = tracks[trackIndex];
1764
1765 if ( !track->natronMarker->isEnabled(time) ) {
1766 return false;
1767 }
1768
1769 TrackMarkerPM* isTrackerPM = dynamic_cast<TrackMarkerPM*>( track->natronMarker.get() );
1770 bool ret;
1771 if (isTrackerPM) {
1772 ret = TrackerContextPrivate::trackStepTrackerPM(isTrackerPM, args, time);
1773 } else {
1774 ret = TrackerContextPrivate::trackStepLibMV(trackIndex, args, time);
1775 }
1776
1777 // Disable the marker since it failed to track
1778 if (!ret && args.isAutoKeyingEnabledParamEnabled()) {
1779 track->natronMarker->setEnabledAtTime(time, false);
1780 }
1781
1782 appPTR->getAppTLS()->cleanupTLSForThread();
1783
1784 return ret;
1785}
1786
1787NATRON_NAMESPACE_ANONYMOUS_ENTER
1788

Callers

nothing calls this directly

Calls 7

getNumTracksMethod · 0.80
setEnabledAtTimeMethod · 0.80
cleanupTLSForThreadMethod · 0.80
getAppTLSMethod · 0.80
isEnabledMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected