覚書:選択モードとselmodeと選択状態情報

ポイント選択モードを表、ポリゴン選択モードを裏とし、エッジ、ボリュームは考えない。

selmode(DIRECT);ではモードが裏表どちらであってもp~count();で正しく状態取得出来る。
但し、selp~();で選択状態を更新できない。

selmode(USER);では裏表に応じたp~count();でしか適切に状態を取得出来ない。
p~count();の判定は裏表に関係なく、視覚的に表示されてる面(選択モード)に対して行われる。
selp~();で選択状態を更新出来るが、際して裏表が切り替わる。

モードが表で、裏の状態を見るとき、
DIRECTではポリゴンの選択状態が適切に得られる。
USERで、表に(点)選択が有る場合、表でポリゴンが選択されていない訳だからpolygoncount();ではゼロが返る。
表に(点)選択が無い場合、USERモードの「非選択による暗黙の全選択」が発動して、polygoncount();では全ポリゴンが返る。

----
日の字型ポリゴン(□2、6点)で、各選択モード(POL/PTS/EDG)でのGLOBAL、DIRECT、USERの結果。
oは選択有り、xは選択無し。 選択数は□2/点6以下の場合、DIRECTはその値になる。

  |  |pol/pts|pol/pts|pol/pts|pol/pts|
  |  | o / o | o / x | x / o | x / x |
  |GLB | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 |
POL |DIR | 2 / 6 | 2 / 0 | 0 / 6 | 0 / 0 |
  |USR | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 |

  |GLB | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 |
PTS |DIR | 2 / 6 | 2 / 0 | 0 / 6 | 0 / 0 |
  |USR | 0 / 6 | 2 / 6 | 0 / 6 | 2 / 6 |

  |GLB | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 |
EDG |DIR | 2 / 6 | 2 / 0 | 0 / 6 | 0 / 0 |
  |USR | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 |


選択モードを知る条件を作れるかと思ったけど、分岐が煩雑になりすぎる気がして断念('A`)

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック