[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11607] branches/2-44-stable/blender/ source/blender: branches/2-44-stable

Diego Borghetti (Plumiferos) bdiego at gmail.com
Wed Aug 15 06:32:40 CEST 2007


Revision: 11607
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11607
Author:   bdiego
Date:     2007-08-15 06:32:40 +0200 (Wed, 15 Aug 2007)

Log Message:
-----------
branches/2-44-stable

Merge from trunk:
	revision 11549
	revision 11558
	revision 11570
	revision 11573
	revision 11576
	revision 11580
	revision 11585
	revision 11589

Revision Links:
--------------
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11549
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11558
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11570
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11573
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11576
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11580
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11585
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11589

Modified Paths:
--------------
    branches/2-44-stable/blender/source/blender/include/BSE_node.h
    branches/2-44-stable/blender/source/blender/src/drawview.c
    branches/2-44-stable/blender/source/blender/src/editarmature.c
    branches/2-44-stable/blender/source/blender/src/editnode.c
    branches/2-44-stable/blender/source/blender/src/editscreen.c
    branches/2-44-stable/blender/source/blender/src/header_info.c
    branches/2-44-stable/blender/source/blender/src/multires.c
    branches/2-44-stable/blender/source/blender/src/outliner.c
    branches/2-44-stable/blender/source/blender/src/space.c

Modified: branches/2-44-stable/blender/source/blender/include/BSE_node.h
===================================================================
--- branches/2-44-stable/blender/source/blender/include/BSE_node.h	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/include/BSE_node.h	2007-08-15 04:32:40 UTC (rev 11607)
@@ -71,6 +71,7 @@
 void snode_make_group_editable(struct SpaceNode *snode, struct bNode *gnode);
 void node_hide(struct SpaceNode *snode);
 void node_read_renderlayers(struct SpaceNode *snode);
+void clear_scene_in_nodes(struct Scene *sce);
 
 void node_transform_ext(int mode, int unused);
 void node_shader_default(struct Material *ma);

Modified: branches/2-44-stable/blender/source/blender/src/drawview.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/drawview.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/drawview.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -2223,10 +2223,14 @@
 		uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_OBJECTPANELPARENT, "Par:", 160, 180, 140, 20, &ob->parent, "Parent Object"); 
 		if((ob->parent) && (ob->partype == PARBONE)) {
 			if (G.f & G_SCULPTMODE)
-				uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 310, 180, 140, 20, ob->parsubstr, 0.0, 32.0, 0, 0, "");
+				uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 310, 180, 140, 20, ob->parsubstr, 0, 30, 0, 0, "");
 			else
-				uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 160, 160, 140, 20, ob->parsubstr, 0.0, 32.0, 0, 0, "");
+				uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 160, 160, 140, 20, ob->parsubstr, 0, 30, 0, 0, "");
 		}
+		else {
+			strcpy(ob->parsubstr, "");
+		}
+		uiBlockEndAlign(block);
 	}
 
 	lim= 10000.0f*MAX2(1.0, G.vd->grid);
@@ -2912,7 +2916,6 @@
 
 			glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 			glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-			glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
 			
 			glPushMatrix();
 			glTranslatef(pd->origloc[0], pd->origloc[1], 0);

Modified: branches/2-44-stable/blender/source/blender/src/editarmature.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/editarmature.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/editarmature.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -343,12 +343,17 @@
 	ListBase	list;
 	EditBone *ebone;
 	bArmature *arm;
-
+	float scale;	/* store the scale of the matrix here to use on envelopes */
 	arm = get_armature(ob);
 
-	if (!arm)
+	if (!arm) {
 		return;
-
+	} else {
+		float tmp[3] = {1.0, 1.0, 1.0};
+		Mat3MulVecfl(mat, tmp);
+		scale = (fabs(tmp[0]) + fabs(tmp[1]) + fabs(tmp[2])) / 3.0f;
+	}
+	
 	/* Put the armature into editmode */
 	list.first= list.last = NULL;
 	make_boneList(&list, &arm->bonebase, NULL);
@@ -357,6 +362,10 @@
 	for (ebone = list.first; ebone; ebone=ebone->next){
 		Mat3MulVecfl(mat, ebone->head);
 		Mat3MulVecfl(mat, ebone->tail);
+		
+		ebone->rad_head	*= scale;
+		ebone->rad_tail	*= scale;
+		ebone->dist		*= scale;
 	}
 	
 	/* Turn the list into an armature */

Modified: branches/2-44-stable/blender/source/blender/src/editnode.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/editnode.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/editnode.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -1909,6 +1909,33 @@
 	snode_handle_recalc(snode);
 }
 
+/* called from header_info, when deleting a scene
+ * goes over all scenes other than the input, checks if they have
+ * render layer nodes referencing the to-be-deleted scene, and
+ * resets them to NULL. */
+void clear_scene_in_nodes(Scene *sce)
+{
+	Scene *sce1;
+	bNode *node;
+
+	sce1= G.main->scene.first;
+	while(sce1) {
+		if(sce1!=sce) {
+			if (sce1->nodetree) {
+				for(node= sce1->nodetree->nodes.first; node; node= node->next) {
+					if(node->type==CMP_NODE_R_LAYERS) {
+						Scene *nodesce= (Scene *)node->id;
+						
+						if (nodesce==sce) node->id = NULL;
+					}
+				}
+			}
+		}
+		sce1= sce1->id.next;
+	}
+}
+
+
 /* gets active viewer user */
 struct ImageUser *ntree_get_active_iuser(bNodeTree *ntree)
 {

Modified: branches/2-44-stable/blender/source/blender/src/editscreen.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/editscreen.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/editscreen.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -3111,7 +3111,7 @@
 			}
 		}
 		
-		if (first || mval[0]!=mvalo[0] || mval[1]!=mvalo[1]) {
+		if (first || (dir=='v' && mval[0]!=mvalo[0]) || (dir=='h' && mval[1]!=mvalo[1])) {
 			if (!first) {
 				scrarea_draw_splitpoint(sa, dir, fac);
 			}
@@ -3387,7 +3387,7 @@
 {
 	ScrVert *v1;
 	ScrArea *sa;
-	short mvalo[2];
+	short mvalo[2], mval_prev=-1;
 	short edge_start, edge_end, edge_position;
 	short bigger, smaller, headery, areaminy;
 	int delta, doit;
@@ -3476,13 +3476,18 @@
 			short mval[2];
 			
 			getmouseco_sc(mval);
-			
-			draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
+			if ((dir=='h' && mval_prev != mval[1]) || (dir=='v' && mval_prev != mval[0])) {
+				/* update the previous val with this one for comparison next loop */
+				if (dir=='h')	mval_prev = mval[1];
+				else			mval_prev = mval[0];
+				
+				draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
 
-			delta= (dir=='h')?(mval[1]-mvalo[1]):(mval[0]-mvalo[0]);
-			delta= CLAMPIS(delta, -smaller, bigger);
-			draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
-			bglFlush();
+				delta= (dir=='h')?(mval[1]-mvalo[1]):(mval[0]-mvalo[0]);
+				delta= CLAMPIS(delta, -smaller, bigger);
+				draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
+				bglFlush();
+			}
 		} 
 		else if (event==LEFTMOUSE) {
 			doit= 1;

Modified: branches/2-44-stable/blender/source/blender/src/header_info.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/header_info.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/header_info.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -106,6 +106,7 @@
 #include "BSE_editipo.h"
 #include "BSE_filesel.h"
 #include "BSE_headerbuttons.h"
+#include "BSE_node.h"
 #include "BSE_sequence.h"
 #include "BSE_edit.h"
 
@@ -496,6 +497,9 @@
 			/* check all sequences */
 			clear_scene_in_allseqs(G.scene);
 
+			/* check render layer nodes in other scenes */
+			clear_scene_in_nodes(G.scene);
+			
 			/* al screens */
 			sc= G.main->screen.first;
 			while(sc) {

Modified: branches/2-44-stable/blender/source/blender/src/multires.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/multires.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/multires.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -842,13 +842,20 @@
 {
 	int i,j, curf, cure;
 	Mesh *me= me_v;
-	MultiresLevel *lvl= MEM_callocN(sizeof(MultiresLevel), "multireslevel");
+	MultiresLevel *lvl= NULL;
 	MultiApplyData data;
 	
 	multires_check_state();
 
+	if(CustomData_number_of_layers(G.obedit ? &G.editMesh->fdata : &me->fdata, CD_MCOL) > 1) {
+		int ret= okee("Adding a level will delete all but the active vertex color layer, proceed?");
+		if(!ret)
+			return;
+	}
+
 	waitcursor(1);
 
+	lvl= MEM_callocN(sizeof(MultiresLevel), "multireslevel");
 	if(me->pv) sculptmode_pmv_off(me);
 
 	check_colors(me);

Modified: branches/2-44-stable/blender/source/blender/src/outliner.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/outliner.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/outliner.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -2208,7 +2208,8 @@
 		}
 	}
 	else {
-		if (name) error("Not found: %s", name);
+		/* no tree-element found */
+		error("Not found: %s", name);
 	}
 }
 

Modified: branches/2-44-stable/blender/source/blender/src/space.c
===================================================================
--- branches/2-44-stable/blender/source/blender/src/space.c	2007-08-15 00:48:33 UTC (rev 11606)
+++ branches/2-44-stable/blender/source/blender/src/space.c	2007-08-15 04:32:40 UTC (rev 11607)
@@ -903,22 +903,31 @@
 void join_menu(void)
 {
 	Object *ob= OBACT;
-	if (ob && !G.obedit) {
-		if(ob->type == OB_MESH) {
-			if(okee("Join selected meshes")==0) return;
-			join_mesh();
-		} else if(ob->type == OB_CURVE) {
-			if(okee("Join selected curves")==0) return;
-			join_curve(OB_CURVE);
-		} else if(ob->type == OB_SURF) {
-			if(okee("Join selected NURBS")==0) return;
-			join_curve(OB_SURF);
-		} else if(ob->type == OB_ARMATURE) {
-			/*	Make sure the user wants to continue*/
-			if(okee("Join selected armatures")==0) return;
-			join_armature ();
-		}
+	if (G.obedit) {
+		error("This data does not support joining in editmode");
+		return;
 	}
+	if (!ob) {
+		error("Can't join unless there is an active object");
+		return;
+	}
+	
+	if(ob->type == OB_MESH) {
+		if(okee("Join selected meshes")==0) return;
+		join_mesh();
+	} else if(ob->type == OB_CURVE) {
+		if(okee("Join selected curves")==0) return;
+		join_curve(OB_CURVE);
+	} else if(ob->type == OB_SURF) {
+		if(okee("Join selected NURBS")==0) return;
+		join_curve(OB_SURF);
+	} else if(ob->type == OB_ARMATURE) {
+		/*	Make sure the user wants to continue*/
+		if(okee("Join selected armatures")==0) return;
+		join_armature ();
+	} else {
+		error("This object type doesn't support joining");
+	}
 }
 
 static unsigned short convert_for_nonumpad(unsigned short event)
@@ -1960,8 +1969,12 @@
 					if( ob ) {
 						join_menu();
 					}
-					else if ((G.obedit) && ELEM(G.obedit->type, OB_CURVE, OB_SURF))
+					else if ((G.obedit) && ELEM(G.obedit->type, OB_CURVE, OB_SURF)) {
 						addsegment_nurb();
+					} else {
+						error("Can't join unless there is an active object");
+					}
+					
 				}
 				else if(G.obedit) {
 					if(G.obedit->type==OB_MESH) {





More information about the Bf-blender-cvs mailing list