[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