comparison layer/TimeInstantLayer.cpp @ 356:bff85425228c

* function rename & notes
author Chris Cannam
date Mon, 04 Feb 2008 13:35:11 +0000
parents 2f83b6e3b8ca
children 8b69f36c74be
comparison
equal deleted inserted replaced
355:9aab6bd27fcc 356:bff85425228c
748 748
749 // If they didn't come from our model, and if reference frames are 749 // If they didn't come from our model, and if reference frames are
750 // available, then we want to offer to align them. If reference 750 // available, then we want to offer to align them. If reference
751 // frames are unavailable but they came from the reference model, 751 // frames are unavailable but they came from the reference model,
752 // we want to offer to align them too. 752 // we want to offer to align them too.
753
754
755 //!!!
756
757 // Each point may have a reference frame that may differ from the
758 // point's given frame (in its source model). If it has no
759 // reference frame, we have to assume the source model was not
760 // aligned or was the reference model: when cutting or copying
761 // points from a layer, we must always set their reference frame
762 // correctly if we are aligned.
763 //
764 // When pasting:
765 // - if point's reference and aligned frames differ:
766 // - if this layer is aligned:
767 // - if point's aligned frame matches this layer's aligned version
768 // of point's reference frame:
769 // - we can paste at reference frame or our frame
770 // - else
771 // - we can paste at reference frame, result of aligning reference
772 // frame in our model, or literal source frame
773 // - else
774 // - we can paste at reference (our) frame, or literal source frame
775 // - else
776 // - if this layer is aligned:
777 // - we can paste at reference (point's only available) frame,
778 // or result of aligning reference frame in our model
779 // - else
780 // - we can only paste at reference frame
781 //
782 // Which of these alternatives are useful?
783 //
784 // Example: we paste between two tracks that are aligned to the
785 // same reference, and the points are at 10s and 20s in the source
786 // track, corresponding to 5s and 10s in the reference but 20s and
787 // 30s in the target track.
788 //
789 // The obvious default is to paste at 20s and 30s; if we aren't
790 // doing that, would it be better to paste at 5s and 10s or at 10s
791 // and 20s? We probably don't ever want to do the former, do we?
792 // We either want to be literal all the way through, or aligned
793 // all the way through.
753 794
754 for (Clipboard::PointList::const_iterator i = points.begin(); 795 for (Clipboard::PointList::const_iterator i = points.begin();
755 i != points.end(); ++i) { 796 i != points.end(); ++i) {
756 797
757 if (!i->haveFrame()) continue; 798 if (!i->haveFrame()) continue;