[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42517] branches/bmesh/blender: svn merge ^/trunk/blender -r42495:42516

Campbell Barton ideasman42 at gmail.com
Thu Dec 8 18:32:46 CET 2011


Revision: 42517
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42517
Author:   campbellbarton
Date:     2011-12-08 17:32:37 +0000 (Thu, 08 Dec 2011)
Log Message:
-----------
svn merge ^/trunk/blender -r42495:42516

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42495

Modified Paths:
--------------
    branches/bmesh/blender/release/scripts/startup/bl_operators/object_randomize_transform.py
    branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_mesh.h
    branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/deform.c
    branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c
    branches/bmesh/blender/source/blender/editors/object/object_vgroup.c
    branches/bmesh/blender/source/blender/editors/space_view3d/drawobject.c
    branches/bmesh/blender/source/blender/editors/space_view3d/view3d_view.c
    branches/bmesh/blender/source/blender/gpu/GPU_draw.h
    branches/bmesh/blender/source/blender/gpu/intern/gpu_draw.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_curve.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_tracking.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_hook.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_weightvg_util.c
    branches/bmesh/blender/source/blender/render/intern/source/pipeline.c

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42495
   + /branches/soc-2011-cucumber:37517
/branches/soc-2011-tomato:42376,42378-42379,42397,42400
/trunk/blender:39992-42516


Property changes on: branches/bmesh/blender/release
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender/release:31524-42495
   + /trunk/blender/release:31524-42516

Modified: branches/bmesh/blender/release/scripts/startup/bl_operators/object_randomize_transform.py
===================================================================
--- branches/bmesh/blender/release/scripts/startup/bl_operators/object_randomize_transform.py	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/release/scripts/startup/bl_operators/object_randomize_transform.py	2011-12-08 17:32:37 UTC (rev 42517)
@@ -20,13 +20,12 @@
 
 import bpy
 from bpy.types import Operator
+from mathutils import Vector
 
-
 def randomize_selected(seed, delta, loc, rot, scale, scale_even, scale_min):
 
     import random
     from random import uniform
-    from mathutils import Vector
 
     random.seed(seed)
 
@@ -86,6 +85,7 @@
 from bpy.props import (IntProperty,
                        BoolProperty,
                        FloatVectorProperty)
+from math import pi
 
 
 class RandomizeLocRotSize(Operator):
@@ -129,10 +129,10 @@
     rot = FloatVectorProperty(
             name="Rotation",
             description="Maximun rotation over each axis",
-            min=-180.0,
-            max=180.0,
+            min=-pi,
+            max=pi,
             default=(0.0, 0.0, 0.0),
-            subtype='TRANSLATION',
+            subtype='EULER',
             )
     use_scale = BoolProperty(
             name="Randomize Scale",
@@ -162,14 +162,12 @@
             )
 
     def execute(self, context):
-        from math import radians
-
         seed = self.random_seed
 
         delta = self.use_delta
 
         loc = None if not self.use_loc else self.loc
-        rot = None if not self.use_rot else self.rot * radians(1.0)
+        rot = None if not self.use_rot else Vector(self.rot)
         scale = None if not self.use_scale else self.scale
 
         scale_even = self.scale_even

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_deform.h	2011-12-08 17:32:37 UTC (rev 42517)
@@ -52,7 +52,8 @@
 
 struct MDeformWeight	*defvert_find_index(const struct MDeformVert *dv, const int defgroup);
 struct MDeformWeight	*defvert_verify_index(struct MDeformVert *dv, const int defgroup);
-void                     defvert_remove_index(struct MDeformVert *dvert, int defgroup, struct MDeformWeight *dw);
+void                     defvert_add_index_notest(struct MDeformVert *dv, int defgroup, const float weight);
+void                     defvert_remove_group(struct MDeformVert *dvert, struct MDeformWeight *dw);
 
 float  defvert_find_weight(const struct MDeformVert *dvert, const int defgroup);
 float  defvert_array_find_weight_safe(const struct MDeformVert *dvert, const int index, const int defgroup);

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_mesh.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_mesh.h	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_mesh.h	2011-12-08 17:32:37 UTC (rev 42517)
@@ -192,7 +192,13 @@
 void mesh_translate(struct Mesh *me, float offset[3], int do_keys);
 
 /* mesh_validate.c */
-int BKE_mesh_validate_arrays(struct Mesh *me, struct MVert *mverts, unsigned int totvert, struct MEdge *medges, unsigned int totedge, struct MFace *mfaces, unsigned int totface, const short do_verbose, const short do_fixes);
+int BKE_mesh_validate_arrays(
+		struct Mesh *me,
+        struct MVert *mverts, unsigned int totvert,
+        struct MEdge *medges, unsigned int totedge,
+        struct MFace *mfaces, unsigned int totface,
+        struct MDeformVert *dverts, /* assume totvert length */
+        const short do_verbose, const short do_fixes);
 int BKE_mesh_validate(struct Mesh *me, int do_verbose);
 int BKE_mesh_validate_dm(struct DerivedMesh *dm);
 

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2011-12-08 17:32:37 UTC (rev 42517)
@@ -1279,11 +1279,8 @@
 						}
 					}
 				}
-				if(!dodraw) {
-					continue;
-				}
 
-				if( numdata != 0 ) {
+				if(dodraw && numdata != 0 ) {
 					offset = 0;
 					if(attribs.totorco) {
 						copy_v3_v3((float *)&varray[elementsize*curface*3],(float *)attribs.orco.array[mface->v1]);
@@ -1325,7 +1322,7 @@
 				}
 				curface++;
 				if(mface->v4) {
-					if( numdata != 0 ) {
+					if(dodraw && numdata != 0 ) {
 						offset = 0;
 						if(attribs.totorco) {
 							copy_v3_v3((float *)&varray[elementsize*curface*3],(float *)attribs.orco.array[mface->v3]);

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/deform.c	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/deform.c	2011-12-08 17:32:37 UTC (rev 42517)
@@ -577,46 +577,61 @@
 	return dw_new;
 }
 
-/* Removes the given vertex from the vertex group, specified either by its defgrp_idx,
- * or directly by its MDeformWeight pointer, if dw is not NULL.
- * WARNING: This function frees the given MDeformWeight, do not use it afterward! */
-void defvert_remove_index(MDeformVert *dvert, int defgroup, MDeformWeight *dw)
+/* TODO. merge with code above! */
+
+/* Adds the given vertex to the specified vertex group, with given weight.
+ * warning, this does NOT check for existign, assume caller already knows its not there */
+void defvert_add_index_notest(MDeformVert *dvert, int defgroup, const float weight)
 {
 	MDeformWeight *dw_new;
-	int i;
 
-	/* Get index of removed MDeformWeight. */
-	if (dw == NULL) {
-		dw = dvert->dw;
-		for (i = dvert->totweight; i > 0; i--, dw++) {
-			if (dw->def_nr == defgroup)
-				break;
-		}
-		i--;
+	/* do this check always, this function is used to check for it */
+	if (!dvert || defgroup < 0)
+		return;
+
+	dw_new = BLI_cellalloc_calloc(sizeof(MDeformWeight)*(dvert->totweight+1), "defvert_add_to group, new deformWeight");
+	if(dvert->dw) {
+		memcpy(dw_new, dvert->dw, sizeof(MDeformWeight)*dvert->totweight);
+		BLI_cellalloc_free(dvert->dw);
 	}
-	else {
-		i = dw - dvert->dw;
+	dvert->dw = dw_new;
+	dw_new += dvert->totweight;
+	dw_new->weight = weight;
+	dw_new->def_nr = defgroup;
+	dvert->totweight++;
+}
+
+
+/* Removes the given vertex from the vertex group.
+ * WARNING: This function frees the given MDeformWeight, do not use it afterward! */
+void defvert_remove_group(MDeformVert *dvert, MDeformWeight *dw)
+{
+	if (dvert && dw) {
+		MDeformWeight *dw_new;
+		int i = dw - dvert->dw;
+
 		/* Security check! */
-		if(i < 0 || i >= dvert->totweight)
+		if(i < 0 || i >= dvert->totweight) {
 			return;
-	}
+		}
 
-	dvert->totweight--;
-	/* If there are still other deform weights attached to this vert then remove
-	 * this deform weight, and reshuffle the others.
-	 */
-	if (dvert->totweight) {
-		dw_new = BLI_cellalloc_malloc(sizeof(MDeformWeight)*(dvert->totweight), __func__);
-		if (dvert->dw){
-			memcpy(dw_new, dvert->dw, sizeof(MDeformWeight)*i);
-			memcpy(dw_new+i, dvert->dw+i+1, sizeof(MDeformWeight)*(dvert->totweight-i));
+		dvert->totweight--;
+		/* If there are still other deform weights attached to this vert then remove
+		 * this deform weight, and reshuffle the others.
+		 */
+		if (dvert->totweight) {
+			dw_new = BLI_cellalloc_malloc(sizeof(MDeformWeight)*(dvert->totweight), __func__);
+			if (dvert->dw){
+				memcpy(dw_new, dvert->dw, sizeof(MDeformWeight)*i);
+				memcpy(dw_new+i, dvert->dw+i+1, sizeof(MDeformWeight)*(dvert->totweight-i));
+				BLI_cellalloc_free(dvert->dw);
+			}
+			dvert->dw = dw_new;
+		}
+		else {
+			/* If there are no other deform weights left then just remove this one. */
 			BLI_cellalloc_free(dvert->dw);
+			dvert->dw = NULL;
 		}
-		dvert->dw = dw_new;
 	}
-	else {
-		/* If there are no other deform weights left then just remove this one. */
-		BLI_cellalloc_free(dvert->dw);
-		dvert->dw = NULL;
-	}
 }

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c	2011-12-08 15:55:49 UTC (rev 42516)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c	2011-12-08 17:32:37 UTC (rev 42517)
@@ -45,6 +45,7 @@
 #include "MEM_guardedalloc.h"
 
 #include "BKE_mesh.h"
+#include "BKE_deform.h"
 
 #define SELECT 1
 
@@ -118,7 +119,12 @@
 
 #define PRINT if(do_verbose) printf
 
-int BKE_mesh_validate_arrays(Mesh *me, MVert *mverts, unsigned int totvert, MEdge *medges, unsigned int totedge, MFace *mfaces, unsigned int totface, const short do_verbose, const short do_fixes)
+int BKE_mesh_validate_arrays( Mesh *me,
+                              MVert *mverts, unsigned int totvert,
+                              MEdge *medges, unsigned int totedge,
+                              MFace *mfaces, unsigned int totface,
+                              MDeformVert *dverts, /* assume totvert length */
+                              const short do_verbose, const short do_fixes)
 {
 #	define REMOVE_EDGE_TAG(_med) { _med->v2= _med->v1; do_edge_free= 1; }
 #	define REMOVE_FACE_TAG(_mf) { _mf->v3=0; do_face_free= 1; }
@@ -157,7 +163,7 @@
 		int fix_normal= TRUE;
 
 		for(j=0; j<3; j++) {
-			if(isnan(mvert->co[j]) || !finite(mvert->co[j])) {
+			if(!finite(mvert->co[j])) {
 				PRINT("    vertex %u: has invalid coordinate\n", i);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list