/*
	Range
	レンジ（編集可能）オブジェクトを作る？
	

*/

Xpsに以下のトレーラを増設

タイミングコレクション
エフェクトコレクション
サウンドコレクション
カメラワークコレクション

現在のxpsBodyのラッパとして実装したほうが良さそう？

実装が終われば、ラッパとしてxpsBodyの直接編集を禁止できる鴨ネギ

各コレクションの基底クラスは同じメソッドも共通
編集後は、直ちに（又は保存時に遅延して）xpsBodyを変更する

基本的な編集対象がコレクションになっても良い。

コレクション内はエレメントがIDを持って存在する。

エレメントのプロパティ

index	Int
inPoint	Int
duration	Int
content	各タイムラインごとのオブジェクト
bodytext	text
commetnt	text

IDはセッション毎に変化するが、セッション内では固定
順序は　inPointでソート
inPoint durationの変更（編集）があった場合は、再計算が発生
どのエレメントにも含まれないフレームは、基底クラスの値（基準値・不定又はヌル）を持つ

timing     = blank
effect     = normal/100% ()
camerawork = centering/scale/lot
sound      = blank


コメントは、各オブジェクトに対して認められる。？
フレームコメントなのでコメントオブジェクトを作って別立てにすべきか

表示は、同時にはコメント欄に1つのみ。クリックで順次切替
コメントオブジェクトに値があればそれを最優先で表示
ほかは撮影側から優先で表示

とか思ったらXpxにフレームあたり1個しか記録できないのでけっこうマズイか。


各インターフェースのUIは、直接コメントオブジェクトを書き換えることにする。
範囲内のコメント行を編集可能
コメント側からどのオブジェクトに連結しているかは見えない。（記録できない）


編集インターフェースを出せば同時に書き換え可


カメラワークタイムラインのパース

未設定のフレームは暫定的にデフォルトの値を持つが、
後方にキーフレームが設定された時点でその値を持つ
（タイミングタイムラインと異なる動作）
これは、習慣的な記法に合わせた解釈である。

	インターポレートシグネチャ（原画タイムラインと呼称は同じ）
カメラワークタイムラインには、原画タイムラインと同じく解決されていない値としての
補間（中割）記号（インターポレートシグネチャ）記入できる。

	インターポレートノード
インターポレートシグネチャがそのタイムライン上にはじめて現れたフレームは、
インターポレートノードフレームになる。

	インターポレートリジョン
次に有効な値を持ったフレームが現れるまでの間、シート上の記述は無視されて
一区間の（補間区間）インターポレートリジョンとして扱われる。
（MAPに記載された）有効な値を持つフレーム以外は、タイミングタイムラインと同様に
前方フレームの値を引き継ぎ、インターポレートシグネチャが記載されたものとして扱う。
この間の記載は、効果に対するコメントとして使用することが可能。

	補間区間のプロパティ
補間区間は、タイミングプロパティを持つ
データ上は、前方の値を持ったキーフレームに属するプロパティであるが、
編集上は補間区間のプロパティとして扱う。
前後のキーフレームを入れ替えた場合もこの値は補間区間に対して維持されるものとする。
この処置で、タイミングの調整が直感的になることが期待される。

保存時は、その時点の前方に位置するキーフレームに関連付けて保存する。
最後尾のキーフレームにはタイミング情報がないこととなるので要注意

follow (or SL)
フォロー、スライド等のキーフレームを持たないタイムラインが存在する。
この場合デフォルトの値がリジョンの前方値として与えられ、後方のキーは自動計算が行われる。

前方にキーを置いて制御を行うのが望ましい。
その場合、第一フレームをスタートキーとして与えるか、最終フレームを終了キーとして与えることができる。
前後にキーを置いた場合は、リジョンノードに与えられた速度情報は無視される。

データ保存時に無効な値を廃棄するかどうかの判断は、実装に委ねる。
ねこまたやとしては、廃棄をお勧めする？


これは、さすがに色々深そう