synched with trunk at revision 34793
[blender.git] / source / blender / editors / mesh / mesh_data.c
index edcdedf2a39d7fa8ab30bb724e4980c499cb3725..d1c6ff4c4aee822688e840793fb7a28665a7e32f 100644 (file)
@@ -721,6 +721,7 @@ static void mesh_add_faces(Mesh *mesh, int len)
        mesh->totface= totface;
 }
 
+/*
 void ED_mesh_geometry_add(Mesh *mesh, ReportList *reports, int verts, int edges, int faces)
 {
        if(mesh->edit_mesh) {
@@ -735,33 +736,39 @@ void ED_mesh_geometry_add(Mesh *mesh, ReportList *reports, int verts, int edges,
        if(faces)
                mesh_add_faces(mesh, faces);
 }
+*/
 
-void ED_mesh_calc_normals(Mesh *me)
+void ED_mesh_faces_add(Mesh *mesh, ReportList *reports, int count)
 {
-       mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+       if(mesh->edit_mesh) {
+               BKE_report(reports, RPT_ERROR, "Can't add faces in edit mode.");
+               return;
+       }
+
+       mesh_add_faces(mesh, count);
 }
 
-void ED_mesh_material_add(Mesh *me, Material *ma)
+void ED_mesh_edges_add(Mesh *mesh, ReportList *reports, int count)
 {
-       int i;
-       int totcol = me->totcol + 1;
-       Material **mat;
-
-       /* don't add if mesh already has it */
-       for(i = 0; i < me->totcol; i++)
-               if(me->mat[i] == ma)
-                       return;
-
-       mat= MEM_callocN(sizeof(void*)*totcol, "newmatar");
+       if(mesh->edit_mesh) {
+               BKE_report(reports, RPT_ERROR, "Can't add edges in edit mode.");
+               return;
+       }
 
-       if(me->totcol) memcpy(mat, me->mat, sizeof(void*) * me->totcol);
-       if(me->mat) MEM_freeN(me->mat);
+       mesh_add_edges(mesh, count);
+}
 
-       me->mat = mat;
-       me->mat[me->totcol++] = ma;
-       if(ma)
-               ma->id.us++;
+void ED_mesh_vertices_add(Mesh *mesh, ReportList *reports, int count)
+{
+       if(mesh->edit_mesh) {
+               BKE_report(reports, RPT_ERROR, "Can't add vertices in edit mode.");
+               return;
+       }
 
-       test_object_materials((ID*)me);
+       mesh_add_verts(mesh, count);
 }
 
+void ED_mesh_calc_normals(Mesh *me)
+{
+       mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+}