rendered paste bodyBME_Mesh *BME_make_new_circle(BME_Mesh *bmesh,float cent[3],int num, float rad, int fill){ BME_Vert *verts[num]; BME_Edge *edges[num]; BME_Vert *cv; BME_Edge *prevedge,*inneredge,*firstedge; BME_Edge *inneredgelist[3]; int i; float pi = 3.1415926542; float s = (pi*2)/num; float d = 0.0-pi; for (i = 0; i <= num; i++){ float tmpvec[3]; tmpvec[0] = cent[0] + rad*cos(d); tmpvec[1] = cent[1] + rad*sin(d); verts[i] = BME_MV(bmesh,tmpvec); d += s; } for (i = 0; i < num-1; i++){ edges[i] = BME_ME(bmesh,verts[i],verts[i+1]); } edges[num-1] = BME_ME(bmesh,verts[num-1],verts[0]); /*make center vert*/ cv = BME_MV(bmesh,cent); /*make inner faces*/ firstedge = prevedge = BME_ME(bmesh,verts[0],cv); for (i = 0; i < num-1; i++) { inneredge = BME_ME(bmesh, verts[i+1], cv); inneredgelist[0] = edges[i]; inneredgelist[1] = inneredge; inneredgelist[2] = prevedge; BME_MF(bmesh, edges[i]->v1, edges[i]->v2, inneredgelist, 3); //<-----not making a face prevedge = inneredge; } inneredgelist[0] = edges[num-1]; inneredgelist[1] = firstedge; inneredgelist[2] = prevedge; BME_MF(bmesh, edges[num-1]->v1, edges[num-1]->v2, inneredgelist, 3); /*BME_MF(bmesh,edges[0]->v1,edges[0]->v2,edges,num);*/ return bmesh;}