Revision: 18197
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18197
Author:   ton
Date:     2008-12-31 18:11:42 +0100 (Wed, 31 Dec 2008)

Log Message:
-----------
2.5

So, editmode mesh is back! :)
At the moment only TABkey works and mouse select, 1 vertex at a
time. More will follow of course.

Note for the devs:
- G.editMesh has been removed, be careful with old code.
- EditMesh now is property of Mesh itself
  Although it means unlimited editmodes, for migration purposes we
  better stick to 1 "obedit" per scene, which is in Context too
- G.obedit will get removed soon, so use CTX_data_edit_object(C)
  Or if you can't, just scene->obedit for now
- Also removed the CTX_data_edit_mesh(), this has no meaning 
  anymore. EditMesh is not context senstitive anymore, only the
  edit-object for time being is.
- Martin: I've already tucked some EditMesh pointer in T and
  removed all G.editMesh there.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_bmesh.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_context.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_displist.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    
branches/blender2.5/blender/source/blender/blenkernel/intern/BME_conversions.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/anim.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/constraint.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/exotic.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/mesh.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
    
branches/blender2.5/blender/source/blender/blenkernel/intern/multires-firstlevel.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/multires.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/shrinkwrap.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
    branches/blender2.5/blender/source/blender/editors/include/ED_util.h
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh.h
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_add.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_intern.h
    branches/blender2.5/blender/source/blender/editors/object/object_ops.c
    branches/blender2.5/blender/source/blender/editors/screen/glutil.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
    
branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.h
    
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_ops.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/editors/util/ed_util.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_curve_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_mesh_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_files.c
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_init_exit.c

Modified: 
branches/blender2.5/blender/source/blender/blenkernel/BKE_DerivedMesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_DerivedMesh.h     
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_DerivedMesh.h     
2008-12-31 17:11:42 UTC (rev 18197)
@@ -443,14 +443,14 @@
                                                   float (*vertCos)[3],
                                                   CustomDataMask dataMask);
 
-DerivedMesh *editmesh_get_derived_base(void);
-DerivedMesh *editmesh_get_derived_cage(CustomDataMask dataMask);
-DerivedMesh *editmesh_get_derived_cage_and_final(DerivedMesh **final_r,
+DerivedMesh *editmesh_get_derived_base(struct EditMesh *em);
+DerivedMesh *editmesh_get_derived_cage(struct EditMesh *em, CustomDataMask 
dataMask);
+DerivedMesh *editmesh_get_derived_cage_and_final(struct EditMesh *em, 
DerivedMesh **final_r,
                                                  CustomDataMask dataMask);
 
 /* returns an array of deform matrices for crazyspace correction, and the
    number of modifiers left */
-int editmesh_get_first_deform_matrices(float (**deformmats)[3][3],
+int editmesh_get_first_deform_matrices(struct EditMesh *em, float 
(**deformmats)[3][3],
                                        float (**deformcos)[3]);
 
 void weight_to_rgb(float input, float *fr, float *fg, float *fb);

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_bmesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_bmesh.h   
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_bmesh.h   
2008-12-31 17:11:42 UTC (rev 18197)
@@ -247,7 +247,7 @@
 
 /*CONVERSION FUNCTIONS*/
 struct BME_Mesh *BME_editmesh_to_bmesh(EditMesh *em);
-struct EditMesh *BME_bmesh_to_editmesh(struct BME_Mesh *bm, BME_TransData_Head 
*td);
+void   BME_bmesh_to_editmesh(struct BME_Mesh *bm, BME_TransData_Head *td, 
EditMesh *em);
 struct BME_Mesh *BME_derivedmesh_to_bmesh(struct DerivedMesh *dm);
 struct DerivedMesh *BME_bmesh_to_derivedmesh(struct BME_Mesh *bm, struct 
DerivedMesh *dm);
 #endif

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_context.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_context.h 
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_context.h 
2008-12-31 17:11:42 UTC (rev 18197)
@@ -142,10 +142,7 @@
 
 struct Object *CTX_data_active_object(const bContext *C);
 struct Base *CTX_data_active_base(const bContext *C);
-
 struct Object *CTX_data_edit_object(const bContext *C);
-struct EditMesh *CTX_data_edit_mesh(const bContext *C);
-struct ListBase *CTX_data_edit_armature(const bContext *C);
 
 /* Data Evaluation Context */
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_displist.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_displist.h        
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_displist.h        
2008-12-31 17:11:42 UTC (rev 18197)
@@ -60,8 +60,8 @@
 struct Material;
 struct Bone;
 struct Mesh;
+struct EditMesh;
 
-
 /* used for curves, nurbs, mball, importing */
 typedef struct DispList {
     struct DispList *next, *prev;
@@ -85,7 +85,7 @@
 extern void count_displist(struct ListBase *lb, int *totvert, int *totface);
 extern void freedisplist(struct ListBase *lb);
 extern int displist_has_faces(struct ListBase *lb);
-extern void makeDerivedMesh(struct Object *ob, CustomDataMask dataMask);
+extern void makeDerivedMesh(struct Object *ob, struct EditMesh *em, 
CustomDataMask dataMask);
 extern void makeDispListSurf(struct Object *ob, struct ListBase *dispbase, int 
forRender);
 extern void makeDispListCurveTypes(struct Object *ob, int forOrco);
 extern void makeDispListMBall(struct Object *ob);

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2008-12-31 17:11:42 UTC (rev 18197)
@@ -60,7 +60,6 @@
 struct Object;
 struct bSoundListener;
 struct BMF_Font;
-struct EditMesh;
 struct BME_Glob;
 
 typedef struct Global {
@@ -97,9 +96,6 @@
        short rt;
        int f;
 
-       /* Editmode lists */
-       struct EditMesh *editMesh;
-       
        /* Used for BMesh transformations */
        struct BME_Glob *editBMesh;
     

Modified: 
branches/blender2.5/blender/source/blender/blenkernel/intern/BME_conversions.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/blenkernel/intern/BME_conversions.c  
    2008-12-31 15:02:40 UTC (rev 18196)
+++ 
branches/blender2.5/blender/source/blender/blenkernel/intern/BME_conversions.c  
    2008-12-31 17:11:42 UTC (rev 18197)
@@ -343,27 +343,23 @@
        BME_model_end(bm);
        return bm;
 }
-/* adds the geometry in the bmesh to G.editMesh (does not free G.editMesh)
+/* adds the geometry in the bmesh to editMesh (does not free editMesh)
  * if td != NULL, the transdata will be mapped to the EditVert's co */
-EditMesh *BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td) {
+void BME_bmesh_to_editmesh(BME_Mesh *bm, BME_TransData_Head *td, EditMesh *em) 
{
        BME_Vert *v1;
        BME_Edge *e;
        BME_Poly *f;
        
        BME_TransData *vtd;
 
-       EditMesh *em;
        EditVert *eve1, *eve2, *eve3, *eve4, **evlist;
        EditEdge *eed;
        EditFace *efa;
 
        int totvert, len, i, numTex, numCol;
 
-       em = G.editMesh;
+       if (em == NULL) return;
 
-       if (em == NULL) return NULL;
-
-
        CustomData_copy(&bm->vdata, &em->vdata, CD_MASK_BMESH, CD_CALLOC, 0);
        CustomData_copy(&bm->edata, &em->edata, CD_MASK_BMESH, CD_CALLOC, 0);
        CustomData_copy(&bm->pdata, &em->fdata, CD_MASK_BMESH, CD_CALLOC, 0);
@@ -438,9 +434,6 @@
 
        MEM_freeN(evlist);
 
-       //XXX countall();
-
-       return em;
 }
 
 /* Adds the geometry found in dm to bm

Modified: 
branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c  
2008-12-31 15:02:40 UTC (rev 18196)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c  
2008-12-31 17:11:42 UTC (rev 18197)
@@ -629,7 +629,7 @@
                        if(draw) {
                                if (draw==2) { /* enabled with stipple */
                                        glEnable(GL_POLYGON_STIPPLE);
-                                       glPolygonStipple(0); //XXX 
stipple_quarttone);
+                                       glPolygonStipple(stipple_quarttone);
                                }
                                
                                glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
@@ -666,7 +666,7 @@
                        if(draw) {
                                if (draw==2) { /* enabled with stipple */
                                        glEnable(GL_POLYGON_STIPPLE);
-                                       glPolygonStipple(0); //XXX 
stipple_quarttone);
+                                       glPolygonStipple(stipple_quarttone);
                                }
                                glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
 
@@ -2396,12 +2396,11 @@
        return 1;
 }
 
-static void editmesh_calc_modifiers(DerivedMesh **cage_r,
+static void editmesh_calc_modifiers(EditMesh *em, DerivedMesh **cage_r,
                                     DerivedMesh **final_r,
                                     CustomDataMask dataMask)
 {
        Object *ob = G.obedit;
-       EditMesh *em = G.editMesh;
        ModifierData *md;
        float (*deformedVerts)[3] = NULL;
        CustomDataMask mask;
@@ -2742,12 +2741,10 @@
        }
 }
 
-static void editmesh_build_data(CustomDataMask dataMask)
+static void editmesh_build_data(EditMesh *em, CustomDataMask dataMask)
 {
        float min[3], max[3];
 
-       EditMesh *em = G.editMesh;
-
        clear_mesh_caches(G.obedit);
 
        if (em->derivedFinal) {
@@ -2763,7 +2760,7 @@
                em->derivedCage = NULL;
        }
 
-       editmesh_calc_modifiers(&em->derivedCage, &em->derivedFinal, dataMask);
+       editmesh_calc_modifiers(em, &em->derivedCage, &em->derivedFinal, 
dataMask);
        em->lastDataMask = dataMask;
 
        INIT_MINMAX(min, max);
@@ -2778,10 +2775,10 @@
        em->derivedCage->needsFree = 0;
 }
 
-void makeDerivedMesh(Object *ob, CustomDataMask dataMask)
+void makeDerivedMesh(Object *ob, EditMesh *em, CustomDataMask dataMask)
 {
-       if (ob==G.obedit) {
-               editmesh_build_data(dataMask);
+       if (em) {
+               editmesh_build_data(em, dataMask);
        } else {
                mesh_build_data(ob, dataMask);
        }
@@ -2953,35 +2950,35 @@
 
 /***/
 
-DerivedMesh *editmesh_get_derived_cage_and_final(DerivedMesh **final_r,
+DerivedMesh *editmesh_get_derived_cage_and_final(EditMesh *em, DerivedMesh 
**final_r,
                                                  CustomDataMask dataMask)
 {
        /* if there's no derived mesh or the last data mask used doesn't include
         * the data we need, rebuild the derived mesh
         */
-       if(!G.editMesh->derivedCage ||
-          (G.editMesh->lastDataMask & dataMask) != dataMask)
-               editmesh_build_data(dataMask);
+       if(!em->derivedCage ||
+          (em->lastDataMask & dataMask) != dataMask)
+               editmesh_build_data(em, dataMask);
 
-       *final_r = G.editMesh->derivedFinal;
-       return G.editMesh->derivedCage;
+       *final_r = em->derivedFinal;
+       return em->derivedCage;
 }
 
-DerivedMesh *editmesh_get_derived_cage(CustomDataMask dataMask)
+DerivedMesh *editmesh_get_derived_cage(EditMesh *em, CustomDataMask dataMask)
 {
        /* if there's no derived mesh or the last data mask used doesn't include
         * the data we need, rebuild the derived mesh
         */
-       if(!G.editMesh->derivedCage ||
-          (G.editMesh->lastDataMask & dataMask) != dataMask)
-               editmesh_build_data(dataMask);
+       if(!em->derivedCage ||
+          (em->lastDataMask & dataMask) != dataMask)
+               editmesh_build_data(em, dataMask);
 
-       return G.editMesh->derivedCage;
+       return em->derivedCage;
 }
 
-DerivedMesh *editmesh_get_derived_base(void)
+DerivedMesh *editmesh_get_derived_base(EditMesh *em)
 {
-       return getEditMeshDerivedMesh(G.editMesh, G.obedit, NULL);
+       return getEditMeshDerivedMesh(em, G.obedit, NULL);
 }
 
 
@@ -3043,10 +3040,9 @@
 
 /* ********* crazyspace *************** */
 
-int editmesh_get_first_deform_matrices(float (**deformmats)[3][3], float 
(**deformcos)[3])
+int editmesh_get_first_deform_matrices(EditMesh *em, float 
(**deformmats)[3][3], float (**deformcos)[3])
 {
        Object *ob = G.obedit;
-       EditMesh *em = G.editMesh;
        ModifierData *md;
        DerivedMesh *dm;
        int i, a, numleft = 0, numVerts = 0;


@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to