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

Method solveTransformParams

Engine/TrackerContext.cpp:1155–1261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1153}
1154
1155void
1156TrackerContext::solveTransformParams()
1157{
1158 _imp->setTransformOutOfDate(false);
1159
1160 std::vector<TrackMarkerPtr> markers;
1161
1162 getAllMarkers(&markers);
1163 if ( markers.empty() ) {
1164 return;
1165 }
1166
1167 _imp->resetTransformParamsAnimation();
1168
1169 KnobChoicePtr motionTypeKnob = _imp->motionType.lock();
1170 int motionType_i = motionTypeKnob->getValue();
1171 TrackerMotionTypeEnum type = (TrackerMotionTypeEnum)motionType_i;
1172 double refTime = (double)getTransformReferenceFrame();
1173 int jitterPeriod = 0;
1174 bool jitterAdd = false;
1175 switch (type) {
1176 case eTrackerMotionTypeNone:
1177
1178 return;
1179 case eTrackerMotionTypeMatchMove:
1180 case eTrackerMotionTypeStabilize:
1181 break;
1182 case eTrackerMotionTypeAddJitter:
1183 case eTrackerMotionTypeRemoveJitter: {
1184 jitterPeriod = _imp->jitterPeriod.lock()->getValue();
1185 jitterAdd = type == eTrackerMotionTypeAddJitter;
1186 break;
1187 }
1188 }
1189
1190 _imp->setSolverParamsEnabled(false);
1191
1192 std::set<double> keyframes;
1193 {
1194 for (std::size_t i = 0; i < markers.size(); ++i) {
1195 std::set<double> keys;
1196 markers[i]->getCenterKeyframes(&keys);
1197 for (std::set<double>::iterator it = keys.begin(); it != keys.end(); ++it) {
1198 keyframes.insert(*it);
1199 }
1200 }
1201 }
1202 KnobChoicePtr transformTypeKnob = _imp->transformType.lock();
1203 assert(transformTypeKnob);
1204 int transformType_i = transformTypeKnob->getValue();
1205 TrackerTransformNodeEnum transformType = (TrackerTransformNodeEnum)transformType_i;
1206 NodePtr node = getNode();
1207 node->getEffectInstance()->beginChanges();
1208
1209
1210 if (type == eTrackerMotionTypeStabilize) {
1211 _imp->invertTransform.lock()->setValue(true);
1212 } else {

Callers 1

threadLoopOnceMethod · 0.80

Calls 15

allFunction · 0.85
setTransformOutOfDateMethod · 0.80
emptyMethod · 0.80
getCenterKeyframesMethod · 0.80
getEffectInstanceMethod · 0.80
setValuesMethod · 0.80
toStdStringMethod · 0.80
getNodeFunction · 0.70

Tested by

no test coverage detected