コード例 #1
0
ファイル: MEdge.c プロジェクト: losalamos/MSTK
 void ME_Replace_Vertex(MEdge_ptr e, MVertex_ptr oldv, MVertex_ptr nuv) {
   if (e->vertex[0] == oldv) {
     e->vertex[0] = nuv;
     MV_Add_Edge(nuv,e);
     MV_Rem_Edge(oldv,e);
   }
   else if (e->vertex[1] == oldv) {
     e->vertex[1] = nuv;
     MV_Add_Edge(nuv,e);
     MV_Rem_Edge(oldv,e);
   }
   else
     MSTK_Report("ME_Replace_Vertex","Cannot find vertex in edge",MSTK_ERROR);
 }
コード例 #2
0
ファイル: MEdge_F1.c プロジェクト: MeshToolkit/MSTK
  void ME_Delete_F1(MEdge_ptr e, int keep) {
    MEdge_Adj_F1 *adj;

    if (MEnt_Dim((MEntity_ptr) e) != MDELETED) { /* if edge hasnt been temporarily deleted */
      if (e->vertex[0]) MV_Rem_Edge(e->vertex[0],e);
      if (e->vertex[1]) MV_Rem_Edge(e->vertex[1],e);
    }

    if (!keep) {
      adj = (MEdge_Adj_F1 *) e->adj;
      if (adj) {
	if (adj->efaces)
	  List_Delete(adj->efaces);
	free(adj);
      }
    }
  }