結局前回の1の方法を採用した
再帰的に隣接するポイントを探していく方法も失敗したので↓の方法で
最初に総ポイント数のメモリを確保
選択されているポイントの情報を配列の前から順に格納、終端にNULL
配列の頭から順に隣接するポイントを探す
配列に含まれていないポイントなら配列の終端に追加、NULLを後ろにずらす
終端のNULLに追いつくまで順に繰り返す
↑の処理をするタイミングは
インスタンスデータに関数のポインタを持たせて、build関数内でそれを実行する
最初やリセット直後はポイントリスト作成関数のポインタを入れておいて
ポイントリスト作成関数の最後でvmapを操作する関数のポインタをいれるようにした