[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