Пример #1
0
/* free undo ListBase of MetaElems */
static void free_undoMball(void *lbv)
{
	ListBase *lb = lbv;
	
	freeMetaElemlist(lb);
	MEM_freeN(lb);
}
Пример #2
0
static void undomball_to_editmball(UndoMBall *umb, MetaBall *mb)
{
  freeMetaElemlist(mb->editelems);
  mb->lastelem = NULL;

  /* copy 'undo' MetaElems to 'edit' MetaElems */
  int index = 0;
  for (MetaElem *ml_undo = umb->editelems.first; ml_undo; ml_undo = ml_undo->next, index += 1) {
    MetaElem *ml_edit = MEM_dupallocN(ml_undo);
    BLI_addtail(mb->editelems, ml_edit);
    if (index == umb->lastelem_index) {
      mb->lastelem = ml_edit;
    }
  }
}
Пример #3
0
static void undoMball_to_editMball(void *lbu, void *lbe, void *UNUSED(obe))
{
	ListBase *lb = lbu;
	ListBase *editelems = lbe;
	MetaElem *ml, *newml;
	
	freeMetaElemlist(editelems);

	/* copy 'undo' MetaElems to 'edit' MetaElems */
	ml = lb->first;
	while (ml) {
		newml = MEM_dupallocN(ml);
		BLI_addtail(editelems, newml);
		ml = ml->next;
	}
	
}
Пример #4
0
/* free undo ListBase of MetaElems */
static void undomball_free_data(UndoMBall *umb)
{
  freeMetaElemlist(&umb->editelems);
}