コード例 #1
0
ファイル: delete-edge-face.cpp プロジェクト: MahaKoala/dilay
void PartialAction :: deleteEdgeFace ( WingedMesh& mesh, WingedEdge& edge
                                     , AffectedFaces& affectedFaces) 
{
#ifndef NDEBUG
  const unsigned int numEdgesLeft  = edge.leftFaceRef  ().numEdges ();
  const unsigned int numEdgesRight = edge.rightFaceRef ().numEdges ();
#endif
  assert (numEdgesLeft  >= 2);
  assert (numEdgesRight >= 2);

  WingedFace& faceToDelete  = edge.rightFaceRef ();
  WingedFace& remainingFace = edge.leftFaceRef ();

  assert (faceToDelete != remainingFace);

  affectedFaces.remove (faceToDelete);
  affectedFaces.insert (remainingFace);

  dissolveEdgeFace (edge);

  mesh.deleteEdge (edge);
  mesh.deleteFace (faceToDelete); 

  assert (remainingFace.numEdges () >= 3);
  assert (remainingFace.numEdges () == numEdgesLeft + numEdgesRight - 2);
}
コード例 #2
0
ファイル: relax-edge.cpp プロジェクト: UIKit0/dilay
void PartialAction :: relaxEdge (WingedMesh& mesh, WingedEdge& edge, AffectedFaces& affectedFaces) {
  if (relaxableEdge (edge)) {
    affectedFaces.insert (edge.leftFaceRef  ());
    affectedFaces.insert (edge.rightFaceRef ());
    PartialAction::flipEdge (mesh, edge);
  }
}