2017-09-06 14 views

Répondre

0

La suppression d'une face n'affecte pas vos sommets dans le cas général. En supprimant un visage, vous supprimez simplement l'information que 3 sommets forment un visage. Ces sommets peuvent toujours prendre part à d'autres visages.

Si vous voulez réellement retirer une face de votre mesh, un trou sera généré dans votre mesh. Considérez le maillage suivant composé de 3 faces. enter image description here Si vous décidez d'enlever F2, le patch final sera composé de 2 faces comme indiqué ci-dessous. enter image description here Notez que vous ne devez pas renommer vos visages. Je l'ai fait pour souligner qu'il restera deux visages.

Après avoir relâché le dessus de la façon de mettre en œuvre cela dépend de la façon dont vous avez représenté votre maillage, mais en général vous feriez quelque chose comme ça:

//the following is pseudo code 
if(faceToRemove.isBoarderFace()){ 
    completelyRemoveEdgesThatOnlyBelongedToThisFace(); //if two edge get removed one vertex needs to get removed 
} 
setTheRemainingEdgesAsBoarderEdges(); 
removeFaceFromFaceList(); 

Si votre maillage ne pas les trous avant de retirer la que vous n'aurez pas besoin de supprimer les sommets de votre maillage.

Jetez également un coup d'œil à CGAL's graphical explanation.