付箋・パスの投げ縄選択
from 付箋の選択・圧縮 UI設計
付箋・パスの投げ縄選択
細い線でパスを描く
離したら
当たり判定
- ×選択パスの各点からのhitTest
- 付箋は4隅、パスは各点から選択範囲パスに対してhitTest
- パスとパスのブーリアン演算を使う案
- https://github.com/lsst-epo/paper-select-tool/tree/master
- これは「与えられたArray({point: Point})の各pointでhitTestする」というだけのもの
- →まずブーリアン演算で実装してみる
- 十分な速度で動くかどうかを検証
- 100付箋のintersectはiPadでも20msecで動く
- intersectではなく完全に包含されている場合の当たり判定が、予定していたブーリアン演算でうまく動かない
- これはおそらく、intersectはPathとShapeに対して定義されているのに
- subtractはPathとPathであることを仮定した実装になっていて
- 内部でargがPathだと思って呼び出したメソッドが存在しなくて死んでいるのだな
- 対処
- 完全に内包されている場合、相手がShapeならShapeの重心に対する点でのhitTestで確実にPathに当たるはず
- 相手がPathである場合にsubtractが使えるのであれば問題ない
- パスがfillされてないといけないのでcloneしてopacity: 0でfill。
- 付箋との間の当たり判定は問題なく動くようになった
- パスとの当たり判定も動く

pRegroup-done-2019