Mercurial > hg > svgui
diff layer/TimeInstantLayer.cpp @ 356:bff85425228c
* function rename & notes
author | Chris Cannam |
---|---|
date | Mon, 04 Feb 2008 13:35:11 +0000 |
parents | 2f83b6e3b8ca |
children | 8b69f36c74be |
line wrap: on
line diff
--- a/layer/TimeInstantLayer.cpp Wed Jan 30 14:43:05 2008 +0000 +++ b/layer/TimeInstantLayer.cpp Mon Feb 04 13:35:11 2008 +0000 @@ -751,6 +751,47 @@ // frames are unavailable but they came from the reference model, // we want to offer to align them too. + + //!!! + + // Each point may have a reference frame that may differ from the + // point's given frame (in its source model). If it has no + // reference frame, we have to assume the source model was not + // aligned or was the reference model: when cutting or copying + // points from a layer, we must always set their reference frame + // correctly if we are aligned. + // + // When pasting: + // - if point's reference and aligned frames differ: + // - if this layer is aligned: + // - if point's aligned frame matches this layer's aligned version + // of point's reference frame: + // - we can paste at reference frame or our frame + // - else + // - we can paste at reference frame, result of aligning reference + // frame in our model, or literal source frame + // - else + // - we can paste at reference (our) frame, or literal source frame + // - else + // - if this layer is aligned: + // - we can paste at reference (point's only available) frame, + // or result of aligning reference frame in our model + // - else + // - we can only paste at reference frame + // + // Which of these alternatives are useful? + // + // Example: we paste between two tracks that are aligned to the + // same reference, and the points are at 10s and 20s in the source + // track, corresponding to 5s and 10s in the reference but 20s and + // 30s in the target track. + // + // The obvious default is to paste at 20s and 30s; if we aren't + // doing that, would it be better to paste at 5s and 10s or at 10s + // and 20s? We probably don't ever want to do the former, do we? + // We either want to be literal all the way through, or aligned + // all the way through. + for (Clipboard::PointList::const_iterator i = points.begin(); i != points.end(); ++i) {