2017-08-25 4 views
0
  1. remove_faceメソッドはメッシュインデックスを変更しますか?

私はこのコードでセグメンテーションフォールトを取得:CGALサーフェスメッシュ削除フェース

 auto face_iterator = m.faces_around_target(m.halfedge(v3)); 

      for (auto i=face_iterator.begin(); i!=face_iterator.end(); i++) { 
       m.remove_face(*i); 
      } 

ドキュメントの私の理解によると、削除する限り、私はcollect_garbage顔を呼び出さないようをのみマークされています、。したがって、指標に変更はありません。何が起こっている?

  1. remove_faceは、面の半分を削除すると、それらがnull_faceをポイントしますか?そうではないようですが、私は理解できません。

ありがとうございます。

答えて

0

顔は削除されているとマークされていますが、そのイテレータは削除によって無効になります(イテレータは削除されていない要素だけにあることに注意してください)。

docに記載されているように:は、何も調整せずにハーフエッジデータ構造からフェイスfを削除します。 CGAL::Euler::remove_face()などの上位レベルの関数を使用する必要があります。

+0

ありがとうございました! CGAL :: Eulerは私が必要としていたものです。完全に機能したCGAL :: Euler :: remove_center_vertex()を使用して終了しました! – AmirB