pub fn span_is_valid(span: [f64; 2]) -> boolExpand description
取付き線の無次元区間 span = [t_i, t_j] が規約 0.0 <= t_i < t_j <= 1.0
を満たすか。
判定の情報源を 1 つに保つため、区間の妥当性が要るところは常にこの関数を使う。
Model::validate(保存時の最終防衛線)・squid-n-edit の編集コマンド・
GUI の入力欄がそれぞれ同じ式を書いていたが、GUI 側だけ下の許容を持たず、
「保存はできるが GUI で編集し直すと弾かれる」非対称になっていた。
両端に 1e-9 の許容を持たせるのは、span が浮動小数の無次元比であり、
1.0 を意図した値が計算経路で 1.0 + ε になりうるためである。区間が
つぶれている(t_j - t_i が許容以下)ものは、載る範囲が無いので弾く。