[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15419] branches/soc-2008-nicholasbishop/ source/blender: Force an update of mesh disps before subdividing

Nicholas Bishop nicholasbishop at gmail.com
Thu Jul 3 22:17:25 CEST 2008


Revision: 15419
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15419
Author:   nicholasbishop
Date:     2008-07-03 22:16:24 +0200 (Thu, 03 Jul 2008)

Log Message:
-----------
Force an update of mesh disps before subdividing

Modified Paths:
--------------
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
    branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c

Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h	2008-07-03 19:10:54 UTC (rev 15418)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/BKE_multires.h	2008-07-03 20:16:24 UTC (rev 15419)
@@ -119,7 +119,7 @@
 
 struct DerivedMesh *multires_dm_create_from_derived(struct MultiresModifierData*, struct DerivedMesh*, int, int);
 
-void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Mesh *me);
+void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object *ob);
 void multiresModifier_setLevel(void *mmd_v, void *ob_v);
 
 void multires_displacer_init(MultiresDisplacer *d, struct DerivedMesh *dm,

Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c	2008-07-03 19:10:54 UTC (rev 15418)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c	2008-07-03 20:16:24 UTC (rev 15419)
@@ -1384,8 +1384,9 @@
 	calc_face_ts_mat(out, orco[f->v1], orco[f->v2], orco[f->v3], (f->v4 ? orco[f->v4] : NULL));
 }
 
-void multiresModifier_subdivide(MultiresModifierData *mmd, Mesh *me)
+void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob)
 {
+	Mesh *me = get_mesh(ob);
 	MDisps *mdisps;
 	int i;
 
@@ -1394,6 +1395,8 @@
 		return;
 	}
 
+	multires_force_update(ob);
+
 	++mmd->lvl;
 	++mmd->totlvl;
 
@@ -1706,7 +1709,7 @@
 {
 	if(ob->derivedFinal) {
 		ob->derivedFinal->needsFree =1;
-		ob->derivedFinal->release(G.obedit->derivedFinal);
+		ob->derivedFinal->release(ob->derivedFinal);
 		ob->derivedFinal = NULL;
 	}
 }

Modified: branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c	2008-07-03 19:10:54 UTC (rev 15418)
+++ branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c	2008-07-03 20:16:24 UTC (rev 15419)
@@ -1660,10 +1660,9 @@
 static void multiresModifier_subdivide_button(void *mmd_v, void *ob_v)
 {
 	MultiresModifierData *mmd = mmd_v;
-	Mesh *me = get_mesh(ob_v);
 
-	if(mmd && me) {
-		multiresModifier_subdivide(mmd, me);
+	if(mmd && ob_v) {
+		multiresModifier_subdivide(mmd, ob_v);
 		BIF_undo_push("Multires subdivide");
 	}
 }





More information about the Bf-blender-cvs mailing list