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

Method solveTransformParams

Engine/TrackerContext.cpp:1136–1242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1134}
1135
1136void
1137TrackerContext::solveTransformParams()
1138{
1139 _imp->setTransformOutOfDate(false);
1140
1141 std::vector<TrackMarkerPtr> markers;
1142
1143 getAllMarkers(&markers);
1144 if ( markers.empty() ) {
1145 return;
1146 }
1147
1148 _imp->resetTransformParamsAnimation();
1149
1150 boost::shared_ptr<KnobChoice> motionTypeKnob = _imp->motionType.lock();
1151 int motionType_i = motionTypeKnob->getValue();
1152 TrackerMotionTypeEnum type = (TrackerMotionTypeEnum)motionType_i;
1153 double refTime = (double)getTransformReferenceFrame();
1154 int jitterPeriod = 0;
1155 bool jitterAdd = false;
1156 switch (type) {
1157 case eTrackerMotionTypeNone:
1158
1159 return;
1160 case eTrackerMotionTypeMatchMove:
1161 case eTrackerMotionTypeStabilize:
1162 break;
1163 case eTrackerMotionTypeAddJitter:
1164 case eTrackerMotionTypeRemoveJitter: {
1165 jitterPeriod = _imp->jitterPeriod.lock()->getValue();
1166 jitterAdd = type == eTrackerMotionTypeAddJitter;
1167 break;
1168 }
1169 }
1170
1171 _imp->setSolverParamsEnabled(false);
1172
1173 std::set<double> keyframes;
1174 {
1175 for (std::size_t i = 0; i < markers.size(); ++i) {
1176 std::set<double> keys;
1177 markers[i]->getCenterKeyframes(&keys);
1178 for (std::set<double>::iterator it = keys.begin(); it != keys.end(); ++it) {
1179 keyframes.insert(*it);
1180 }
1181 }
1182 }
1183 boost::shared_ptr<KnobChoice> transformTypeKnob = _imp->transformType.lock();
1184 assert(transformTypeKnob);
1185 int transformType_i = transformTypeKnob->getValue();
1186 TrackerTransformNodeEnum transformType = (TrackerTransformNodeEnum)transformType_i;
1187 NodePtr node = getNode();
1188 node->getEffectInstance()->beginChanges();
1189
1190
1191 if (type == eTrackerMotionTypeStabilize) {
1192 _imp->invertTransform.lock()->setValue(true);
1193 } 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