DupliObject *dob;
DerivedMesh *dm;
Mesh *me= par->data;
- MTFace *mtface;
- MFace *mface;
+ MLoopUV *mloopuv;
+ MPoly *mpoly, *mp;
+ MLoop *mloop;
MVert *mvert;
float pmat[4][4], imat[3][3], (*orco)[3] = NULL, w;
- int lay, oblay, totface, totloop, a;
+ int lay, oblay, totface, a;
Scene *sce = NULL;
Group *group = NULL;
GroupObject *go = NULL;
if(level>MAX_DUPLI_RECUR) return;
copy_m4_m4(pmat, par->obmat);
-
- em = BKE_mesh_get_editmesh(me);
+ em = me->edit_btmesh;
+
if(em) {
- int totvert;
- dm= editmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
- BKE_mesh_end_editmesh(me, em);
+ dm= editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
-
- totface= dm->getNumFaces(dm);
- mpoly= MEM_mallocN(sizeof(MPoly)*totface, "mface temp");
- dm->copyPolyArray(dm, mpoly);
-
- totloop= dm->numLoopData; /* BMESH_TODO, we should have an api function for this! */
- mloop= MEM_mallocN(sizeof(MLoop)*totloop, "mloop temp");
- dm->copyLoopArray(dm, mloop);
-
- totvert= dm->getNumVerts(dm);
- mvert= MEM_mallocN(sizeof(MVert)*totvert, "mvert temp");
- dm->copyVertArray(dm, mvert);
}
else {
dm = mesh_get_derived_deform(scene, par, CD_MASK_BAREMESH);
-
- totface= dm->getNumFaces(dm);
- mpoly= dm->getPolyArray(dm);
- mloop= dm->getLoopArray(dm);
- mvert= dm->getVertArray(dm);
}
- mface= dm->getFaceArray(dm);
+ totface= dm->getNumFaces(dm);
++ mpoly= dm->getPolyArray(dm);
++ mloop= dm->getLoopArray(dm);
+ mvert= dm->getVertArray(dm);
+
if(G.rendering) {
orco= (float(*)[3])get_mesh_orco_verts(par);