MVert *mvert2; MFace *mface2; int a = 0; result = CDDM_new(numverts, 0, numtris + 2*numquads); mvert2 = CDDM_get_verts(result); for(a=0; aco, mvert[a].co); } mface2 = CDDM_get_faces(result); for(a=0; a<(numtris + numquads*2); a++) { MFace *mf = &mface2[a]; mf->v1 = mface[a].v1; mf->v2 = mface[a].v2; mf->v3 = mface[a].v3; mf->v4 = 0; test_index_face(mf, NULL, 0, 3); if(mface[a].v4) // if i comment this part out, then it doesn't crash { a++; mf = &mface2[a]; mf->v1 = mface[a-1].v3; mf->v2 = mface[a-1].v4; mf->v3 = mface[a-1].v1; mf->v4 = 0; test_index_face(mf, NULL, 0, 3); } } CDDM_calc_edges(result); CDDM_calc_normals(result);