static MetaElem *rna_MetaBall_elements_new(MetaBall *mb, int type) { MetaElem *ml= add_metaball_element(mb, type); /* cheating way for importers to avoid slow updates */ if(mb->id.us > 0) { DAG_id_tag_update(&mb->id, 0); WM_main_add_notifier(NC_GEOM|ND_DATA, &mb->id); } return ml; }
/* Add metaelem primitive to metaball object (which is in edit mode) */ MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int UNUSED(newname)) { Object *obedit= CTX_data_edit_object(C); MetaBall *mball = (MetaBall*)obedit->data; MetaElem *ml; /* Deselect all existing metaelems */ ml= mball->editelems->first; while(ml) { ml->flag &= ~SELECT; ml= ml->next; } ml= add_metaball_element(mball, type); copy_v3_v3(&ml->x, mat[3]); ml->flag |= SELECT; mball->lastelem= ml; return ml; }