ベジェ操作のメモ(交点導出)

モデラを作る上で面倒なのはベジェ曲線/曲面の操作。例えば、複数の曲面オブジェクトを併合する操作で、ベジェ曲線の分割と交点の導出が必要になる。

レイトレーシングなら交点導出が有るに違いないということで調べてみると、Bezier Clipping法というものが有るらしい。言われてみればシンプルな方法で、これを実装することに。

オブジェクトの選択は曲線に対する最近傍点の距離の導出が必要になる。これに関しては厳密な解を導出することにあまり意味は無いので、単純にオブジェクトの所属グリッドを全て列挙しておき、グリッドをマウスでポイントして"S"キーで(レイヤ構成の上から)サイクリックに選択するいつものUIで妥協することにした。
(グリッドへの分割は再描画の単位としても使用される。メモリ消費的な観点から言うとかなりもったいないが。。)