if (!deform_only) {
/* Will use later to speed up subsurf/derivedmesh */
int tot_dm_face = dm__->getNumEdges(dm__);
int totface = me->totface;
int *origindex = DM_get_face_data_layer(dm__, CD_ORIGINDEX);
int i;
LinkNode *node, *node_array;
node= MEM_callocN(sizeof(LinkNode)*tot_dm_face, "faceindicies");
node_array = MEM_callocN(sizeof(LinkNode **)*totface, "faceindicies");
for (i=0; i < tot_dm_face; i++, origindex++, node++) {
node->link = (void *)i; // or use the index?
if (node_array + (*origindex)) {
node_array[*origindex]->next = node;
} else {
node_array[*origindex] = *node;
}
}
}