static void BME_loops_to_corners(BME_Mesh *bm, CustomData *facedata, void *face_block, BME_Poly *f,int numCol, int numTex){ int i, j; BME_Loop *l; MTFace *texface; MTexPoly *texpoly; MCol *mcol; MLoopCol *mloopcol; MLoopUV *mloopuv; for(i=0; i < numTex; i++){ texface = CustomData_em_get_n(facedata, face_block, CD_MTFACE, i); texpoly = CustomData_bmesh_get_n(&bm->pdata, f->data, CD_MTEXPOLY, i); texface->tpage = texpoly->tpage; texface->flag = texpoly->flag; texface->transp = texpoly->transp; texface->mode = texpoly->mode; texface->tile = texpoly->tile; texface->unwrap = texpoly->unwrap; j = 0; l = f->loopbase; do{ mloopuv = CustomData_bmesh_get_n(&bm->ldata, l->data, CD_MLOOPUV, i); texface->uv[j][0] = mloopuv->uv[0]; texface->uv[j][1] = mloopuv->uv[1]; j++; l = l->next; }while(l!=f->loopbase); } for(i=0; i < numCol; i++){ mcol = CustomData_em_get_n(facedata, face_block, CD_MCOL, i); j = 0; l = f->loopbase; do{ mloopcol = CustomData_bmesh_get_n(&bm->ldata, l->data, CD_MLOOPCOL, i); mcol[j].r = mloopcol->r; mcol[j].g = mloopcol->g; mcol[j].b = mloopcol->b; mcol[j].a = mloopcol->a; j++; l = l->next; }while(l!=f->loopbase); } }
static void copy_editface_active_customdata(EditMesh *em, int type, int index) { EditFace *efa; int n= CustomData_get_active_layer(&em->fdata, type); for(efa= em->faces.first; efa; efa= efa->next) { void *data= CustomData_em_get_n(&em->fdata, efa->data, type, n); CustomData_em_set_n(&em->fdata, efa->data, type, index, data); } }