[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28584] branches/render25/source/blender: Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/ blender -r28574:28583

Campbell Barton ideasman42 at gmail.com
Wed May 5 00:02:26 CEST 2010


Revision: 28584
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28584
Author:   campbellbarton
Date:     2010-05-05 00:02:26 +0200 (Wed, 05 May 2010)

Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r28574:28583

Modified Paths:
--------------
    branches/render25/source/blender/blenkernel/intern/particle.c
    branches/render25/source/blender/editors/interface/view2d.c
    branches/render25/source/blender/editors/object/object_ops.c
    branches/render25/source/blender/editors/space_logic/logic_window.c
    branches/render25/source/blender/makesdna/DNA_actuator_types.h
    branches/render25/source/blender/makesrna/intern/rna_actuator.c
    branches/render25/source/blender/makesrna/intern/rna_sensor.c
    branches/render25/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp

Modified: branches/render25/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/particle.c	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/blenkernel/intern/particle.c	2010-05-04 22:02:26 UTC (rev 28584)
@@ -1137,6 +1137,9 @@
 	int point_vel = (point && point->keys->vel);
 	float real_t, dfra, keytime;
 
+	/* billboards wont fill in all of these, so start cleared */
+	memset(keys, 0, sizeof(keys));
+
 	/* interpret timing and find keys */
 	if(point) {
 		if(result->time < 0.0f)
@@ -4289,6 +4292,23 @@
 	xvec[0] = 1.0f; xvec[1] = 0.0f; xvec[2] = 0.0f;
 	yvec[0] = 0.0f; yvec[1] = 1.0f; yvec[2] = 0.0f;
 
+    /* can happen with bad pointcache or physics calculation
+     * since this becomes geometry, nan's and inf's crash raytrace code.
+     * better not allow this. */
+    if( !finite(bb->vec[0]) || !finite(bb->vec[1]) || !finite(bb->vec[2]) ||
+        !finite(bb->vel[0]) || !finite(bb->vel[1]) || !finite(bb->vel[2]) )
+    {
+        zero_v3(bb->vec);
+        zero_v3(bb->vel);
+        
+        zero_v3(xvec);
+        zero_v3(yvec);
+        zero_v3(zvec);
+        zero_v3(center);
+
+        return;
+    }
+
 	if(bb->align < PART_BB_VIEW)
 		onevec[bb->align]=1.0f;
 

Modified: branches/render25/source/blender/editors/interface/view2d.c
===================================================================
--- branches/render25/source/blender/editors/interface/view2d.c	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/editors/interface/view2d.c	2010-05-04 22:02:26 UTC (rev 28584)
@@ -1389,6 +1389,7 @@
 		/* scroller 'button' extents */
 		totsize= v2d->tot.xmax - v2d->tot.xmin;
 		scrollsize= (float)(hor.xmax - hor.xmin);
+		if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
 		
 		fac1= (v2d->cur.xmin - v2d->tot.xmin) / totsize;
 		if(fac1<=0.0f)
@@ -1429,6 +1430,7 @@
 		/* scroller 'button' extents */
 		totsize= v2d->tot.ymax - v2d->tot.ymin;
 		scrollsize= (float)(vert.ymax - vert.ymin);
+		if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
 		
 		fac1= (v2d->cur.ymin- v2d->tot.ymin) / totsize;
 		if(fac1<=0.0f)

Modified: branches/render25/source/blender/editors/object/object_ops.c
===================================================================
--- branches/render25/source/blender/editors/object/object_ops.c	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/editors/object/object_ops.c	2010-05-04 22:02:26 UTC (rev 28584)
@@ -321,7 +321,7 @@
 	/* same as above but for rendering */
 	WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_clear", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
 	WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_CTRL, 0);
-	RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "unselected", 1);
+//	RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "unselected", 1); // conflicts, removing
 
 	WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0);
 	

Modified: branches/render25/source/blender/editors/space_logic/logic_window.c
===================================================================
--- branches/render25/source/blender/editors/space_logic/logic_window.c	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/editors/space_logic/logic_window.c	2010-05-04 22:02:26 UTC (rev 28584)
@@ -3554,7 +3554,7 @@
 
 static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	//XXXACTUATOR STILL HAVE TO DO THE RNA
 }
 
 static void draw_actuator_edit_object(uiLayout *layout, PointerRNA *ptr)
@@ -3569,17 +3569,52 @@
 
 static void draw_actuator_game(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiItemR(layout, ptr, "mode", 0, NULL, 0);
+	if (RNA_enum_get(ptr, "mode") == ACT_GAME_LOAD)
+		uiItemR(layout, ptr, "filename", 0, NULL, 0);
 }
 
 static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row, *col;
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "play_type", 0, NULL, 0);
+	uiItemR(row, ptr, "force", 0, NULL, 0);
+	uiItemR(row, ptr, "add", 0, NULL, 0);
+
+	col = uiLayoutColumn(row, 0);
+	uiLayoutSetActive(col, RNA_boolean_get(ptr, "add"));
+	uiItemR(col, ptr, "local", 0, NULL, 0);
+
+	row= uiLayoutRow(layout, 0);
+	if((RNA_enum_get(ptr, "play_type") == ACT_IPO_FROM_PROP))
+		uiItemR(row, ptr, "property", 0, NULL, 0);
+
+	else {
+		uiItemR(row, ptr, "frame_start", 0, NULL, 0);
+		uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+	}
+	uiItemR(row, ptr, "child", 0, NULL, 0);
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "frame_property", 0, NULL, 0);
 }
 
 static void draw_actuator_message(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row;
+
+	uiItemR(layout, ptr, "to_property", 0, NULL, 0);
+	uiItemR(layout, ptr, "subject", 0, NULL, 0);
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "body_type", 0, NULL, 0);
+
+	if(RNA_enum_get(ptr, "body_type") == ACT_MESG_MESG)
+		uiItemR(row, ptr, "body_message", 0, NULL, 0);
+	else // mode == ACT_MESG_PROP
+		uiItemR(row, ptr, "body_property", 0, NULL, 0);
 }
 
 static void draw_actuator_motion(uiLayout *layout, PointerRNA *ptr)
@@ -3601,12 +3636,85 @@
 
 static void draw_actuator_property(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row;
+
+	uiItemR(layout, ptr, "mode", 0, NULL, 0);
+	uiItemR(layout, ptr, "prop_name", 0, NULL, 0);
+
+	switch(RNA_enum_get(ptr, "mode"))
+	{
+		case ACT_PROP_TOGGLE:
+			break;
+		case ACT_PROP_ADD:
+			uiItemR(layout, ptr, "value", 0, NULL, 0);
+			break;
+		case ACT_PROP_ASSIGN:
+			uiItemR(layout, ptr, "value", 0, NULL, 0);
+			break;
+		case ACT_PROP_COPY:
+			row = uiLayoutRow(layout, 0);
+			uiItemR(row, ptr, "object", 0, NULL, 0);
+			uiItemR(row, ptr, "object_prop_name", 0, NULL, 0);
+	}
 }
 
 static void draw_actuator_random(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row;
+	row = uiLayoutRow(layout, 0);
+
+	uiItemR(row, ptr, "seed", 0, NULL, 0);
+	uiItemR(row, ptr, "distribution", 0, NULL, 0);
+
+	row = uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "property", 0, NULL, 0);
+
+	row = uiLayoutRow(layout, 0);
+
+	switch (RNA_enum_get(ptr, "distribution")){
+		case ACT_RANDOM_BOOL_CONST:
+			uiItemR(row, ptr, "always_true", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_BOOL_UNIFORM:
+			uiItemL(row, "Choose between true and false, 50% chance each", 0);
+			break;
+
+		case ACT_RANDOM_BOOL_BERNOUILLI:
+			uiItemR(row, ptr, "chance", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_INT_CONST:
+			uiItemR(row, ptr, "int_value", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_INT_UNIFORM:
+			uiItemR(row, ptr, "int_min", 0, NULL, 0);
+			uiItemR(row, ptr, "int_max", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_INT_POISSON:
+			uiItemR(row, ptr, "int_mean", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_FLOAT_CONST:
+			uiItemR(row, ptr, "float_value", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_FLOAT_UNIFORM:
+			uiItemR(row, ptr, "float_min", 0, NULL, 0);
+			uiItemR(row, ptr, "float_max", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_FLOAT_NORMAL:
+			uiItemR(row, ptr, "float_mean", 0, NULL, 0);
+			uiItemR(row, ptr, "standard_derivation", 0, NULL, 0);
+			break;
+
+		case ACT_RANDOM_FLOAT_NEGATIVE_EXPONENTIAL:
+			uiItemR(row, ptr, "half_life_time", 0, NULL, 0);
+			break;
+	}
 }
 
 static void draw_actuator_scene(uiLayout *layout, PointerRNA *ptr)
@@ -3618,7 +3726,32 @@
 
 static void draw_actuator_shape_action(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row;
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "mode", 0, NULL, 0);
+	uiItemR(row, ptr, "action", 0, NULL, 0);
+	uiItemR(row, ptr, "continue_last_frame", 0, NULL, 0);
+
+	row= uiLayoutRow(layout, 0);
+	if((RNA_enum_get(ptr, "mode") == ACT_ACTION_FROM_PROP))
+		uiItemR(row, ptr, "property", 0, NULL, 0);
+
+	else {
+		uiItemR(row, ptr, "frame_start", 0, NULL, 0);
+		uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+	}
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "blendin", 0, NULL, 0);
+	uiItemR(row, ptr, "priority", 0, NULL, 0);
+
+	row= uiLayoutRow(layout, 0);
+	uiItemR(row, ptr, "frame_property", 0, NULL, 0);
+
+#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
+	uiItemR(row, "stride_length", 0, NULL, 0);
+#endif
 }
 
 static void draw_actuator_sound(uiLayout *layout, PointerRNA *ptr)
@@ -3633,7 +3766,12 @@
 
 static void draw_actuator_visibility(uiLayout *layout, PointerRNA *ptr)
 {
-	//XXXACTUATOR
+	uiLayout *row;
+	row = uiLayoutRow(layout, 0);
+
+	uiItemR(row, ptr, "visible", 0, NULL, 0);
+	uiItemR(row, ptr, "occlusion", 0, NULL, 0);
+	uiItemR(row, ptr, "children", 0, NULL, 0);
 }
 
 void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr)

Modified: branches/render25/source/blender/makesdna/DNA_actuator_types.h
===================================================================
--- branches/render25/source/blender/makesdna/DNA_actuator_types.h	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/makesdna/DNA_actuator_types.h	2010-05-04 22:02:26 UTC (rev 28584)
@@ -95,7 +95,7 @@
 typedef struct bPropertyActuator {
 	int pad, type;
 	char name[32], value[32];
-	struct Object *ob; // not in use anymore
+	struct Object *ob;
 } bPropertyActuator;
 
 typedef struct bObjectActuator {

Modified: branches/render25/source/blender/makesrna/intern/rna_actuator.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/rna_actuator.c	2010-05-04 22:01:24 UTC (rev 28583)
+++ branches/render25/source/blender/makesrna/intern/rna_actuator.c	2010-05-04 22:02:26 UTC (rev 28584)
@@ -359,7 +359,7 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOFORCE);
 	RNA_def_property_ui_text(prop, "Force", "Apply IPO as a global or local force depending on the local option (dynamic objects only)");
 	RNA_def_property_update(prop, NC_LOGIC, NULL);
-//	logic_window::change_ipo_actuator
+//XXX	logic_window::change_ipo_actuator
 //	RNA_def_property_boolean_funcs(prop, "rna_Actuator_Ipo_get", "rna_Actuator_Ipo_get", "rna_Actuator_Ipo_range");	
 	
 	prop= RNA_def_property(srna, "local", PROP_BOOLEAN, PROP_NONE);
@@ -376,7 +376,7 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOADD);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list