Beispiel #1
0
  void ME_Delete(MEdge_ptr e, int keep) {
    RepType RTYPE = MEnt_RepType((MEntity_ptr) e);
    Mesh_ptr mesh;

    (*ME_Delete_jmp[RTYPE])(e,keep);

    if (MEnt_Dim((MEntity_ptr) e) != MDELETED) {
      mesh = MEnt_Mesh((MEntity_ptr) e);

      if (mesh) {
#ifdef MSTK_HAVE_MPI
      if (ME_PType(e) == PGHOST)
	MESH_Rem_GhostEdge(mesh,e);
      else
#endif
	MESH_Rem_Edge(mesh,e);
      }

      MEnt_Set_DelFlag((MEntity_ptr) e);
    }

    if (!keep) {
      MEnt_Free_CmnData((MEntity_ptr) e);
      free((MEntity_ptr) e);
    }
  }
Beispiel #2
0
  void MR_Delete(MRegion_ptr r, int keep) {
    RepType RTYPE = MEnt_RepType((MEntity_ptr) r);
    Mesh_ptr mesh;

    (*MR_Delete_jmp[RTYPE])(r,keep);

    if (MEnt_Dim((MEntity_ptr) r) != MDELETED) {
      mesh = MEnt_Mesh((MEntity_ptr) r);

      if (mesh) {
#ifdef MSTK_HAVE_MPI
      if (MR_PType(r) == PGHOST)
	MESH_Rem_GhostRegion(mesh,r);
      else
#endif
	MESH_Rem_Region(mesh,r);
      }

      MEnt_Set_DelFlag((MEntity_ptr) r);
    }

    if (!keep) {
      MEnt_Free_CmnData((MEntity_ptr) r);
      free(r);
    }
  }
Beispiel #3
0
  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);
      }
    }
  }
Beispiel #4
0
  void ME_Restore(MEdge_ptr e) {
    RepType RTYPE = MEnt_RepType((MEntity_ptr) e);
    Mesh_ptr mesh = MEnt_Mesh((MEntity_ptr) e);

#ifdef DEBUG
    if (MEnt_Dim((MEntity_ptr) e) != MDELETED) {
      MSTK_Report("ME_Restore",
		  "Trying to restore edge that is not deleted",MSTK_WARN);
      return;
    }
#endif

    MEnt_Rem_DelFlag((MEntity_ptr) e);

#ifdef MSTK_HAVE_MPI
    if (ME_PType(e) == PGHOST)
      MESH_Add_GhostEdge(mesh,e);
    else
#endif
      MESH_Add_Edge(mesh,e);

    (*ME_Restore_jmp[RTYPE])(e);
  }
Beispiel #5
0
  void MR_Restore(MRegion_ptr r) {
    RepType RTYPE = MEnt_RepType((MEntity_ptr) r);
    Mesh_ptr mesh = MEnt_Mesh((MEntity_ptr) r);

#ifdef DEBUG
    if (MEnt_Dim((MEntity_ptr) r) != MDELETED) {
      MSTK_Report("MR_Restore",
		  "Trying to restore region that is not deleted",MSTK_WARN);
      return;
    }
#endif

    MEnt_Rem_DelFlag((MEntity_ptr) r);

#ifdef MSTK_HAVE_MPI
    if (MR_PType(r) == PGHOST)
      MESH_Add_GhostRegion(mesh,r);
    else
#endif
      MESH_Add_Region(mesh,r);

    (*MR_Restore_jmp[RTYPE])(r);
  }