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

Method cloneAndCheckIfChanged

Engine/Curve.cpp:345–372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

343}
344
345bool
346Curve::cloneAndCheckIfChanged(const Curve& other)
347{
348 KeyFrameSet otherKeys = other.getKeyFrames_mt_safe();
349 QMutexLocker l(&_imp->_lock);
350 bool hasChanged = false;
351
352 if ( otherKeys.size() != _imp->keyFrames.size() ) {
353 hasChanged = true;
354 }
355 if (!hasChanged) {
356 assert( otherKeys.size() == _imp->keyFrames.size() );
357 KeyFrameSet::iterator oit = otherKeys.begin();
358 for (KeyFrameSet::iterator it = _imp->keyFrames.begin(); it != _imp->keyFrames.end(); ++it, ++oit) {
359 if (*it != *oit) {
360 hasChanged = true;
361 break;
362 }
363 }
364 }
365 if (hasChanged) {
366 _imp->keyFrames.clear();
367 std::transform( otherKeys.begin(), otherKeys.end(), std::inserter( _imp->keyFrames, _imp->keyFrames.begin() ), KeyFrameCloner() );
368 onCurveChanged();
369 }
370
371 return hasChanged;
372}
373
374void
375Curve::clone(const Curve & other,

Calls 6

transformFunction · 0.85
getKeyFrames_mt_safeMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected