[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37556] branches/soc-2011-onion: merge with trunk -r37554

Ryakiotakis Antonis kalast at gmail.com
Thu Jun 16 17:20:05 CEST 2011


Revision: 37556
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37556
Author:   psy-fi
Date:     2011-06-16 15:20:05 +0000 (Thu, 16 Jun 2011)
Log Message:
-----------
merge with trunk -r37554

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

Modified Paths:
--------------
    branches/soc-2011-onion/build_files/cmake/Modules/FindOpenEXR.cmake
    branches/soc-2011-onion/release/scripts/startup/bl_operators/nla.py
    branches/soc-2011-onion/source/blender/blenkernel/intern/armature.c
    branches/soc-2011-onion/source/blender/editors/interface/interface.c
    branches/soc-2011-onion/source/blender/editors/space_file/file_draw.c
    branches/soc-2011-onion/source/blender/editors/space_file/file_ops.c
    branches/soc-2011-onion/source/blender/editors/space_file/filelist.c
    branches/soc-2011-onion/source/blender/editors/space_file/filesel.c
    branches/soc-2011-onion/source/blender/editors/transform/transform_conversions.c
    branches/soc-2011-onion/source/blender/makesdna/DNA_space_types.h
    branches/soc-2011-onion/source/blender/makesrna/RNA_access.h
    branches/soc-2011-onion/source/blender/makesrna/intern/rna_access.c
    branches/soc-2011-onion/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp

Property Changed:
----------------
    branches/soc-2011-onion/


Property changes on: branches/soc-2011-onion
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/trunk/blender:36833-37527
   + /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/trunk/blender:36833-37554

Modified: branches/soc-2011-onion/build_files/cmake/Modules/FindOpenEXR.cmake
===================================================================
--- branches/soc-2011-onion/build_files/cmake/Modules/FindOpenEXR.cmake	2011-06-16 15:18:56 UTC (rev 37555)
+++ branches/soc-2011-onion/build_files/cmake/Modules/FindOpenEXR.cmake	2011-06-16 15:20:05 UTC (rev 37556)
@@ -1,4 +1,4 @@
-# - Find OpenEXR library (copied from FindTIFF.cmake, v 2.8.5)
+# - Find OpenEXR library
 # Find the native OpenEXR includes and library
 # This module defines
 #  OPENEXR_INCLUDE_DIRS, where to find ImfXdr.h, etc. Set when
@@ -7,6 +7,14 @@
 #  OPENEXR_ROOT_DIR, The base directory to search for OpenEXR.
 #                    This can also be an environment variable.
 #  OPENEXR_FOUND, If false, do not try to use OpenEXR.
+#
+# For indervidual library access these advanced settings are available
+#  OPENEXR_HALF_LIBRARY, Path to Half library
+#  OPENEXR_IEX_LIBRARY, Path to Half library
+#  OPENEXR_ILMIMF_LIBRARY, Path to Ilmimf library
+#  OPENEXR_ILMTHREAD_LIBRARY, Path to IlmThread library
+#  OPENEXR_IMATH_LIBRARY, Path to Imath library
+#
 # also defined, but not for general use are
 #  OPENEXR_LIBRARY, where to find the OpenEXR library.
 
@@ -30,15 +38,18 @@
 
 SET(_openexr_FIND_COMPONENTS
   Half
+  Iex
   IlmImf
-  Iex
+  IlmThread
   Imath
 )
 
 SET(_openexr_SEARCH_DIRS
   ${OPENEXR_ROOT_DIR}
   /usr/local
-  /opt/csw
+  /sw # Fink
+  /opt/local # DarwinPorts
+  /opt/csw # Blastwave
 )
 
 FIND_PATH(OPENEXR_INCLUDE_DIR ImfXdr.h
@@ -54,7 +65,7 @@
 
   FIND_LIBRARY(OPENEXR_${UPPERCOMPONENT}_LIBRARY NAMES ${COMPONENT}
       HINTS ${_openexr_SEARCH_DIRS}
-      PATH_SUFFIXES lib
+      PATH_SUFFIXES lib64 lib
       )
   LIST(APPEND _openexr_LIBRARIES "${OPENEXR_${UPPERCOMPONENT}_LIBRARY}")
 ENDFOREACH()
@@ -63,14 +74,15 @@
 # all listed variables are TRUE
 INCLUDE(FindPackageHandleStandardArgs)
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR  DEFAULT_MSG
-    ${_openexr_LIBRARIES} OPENEXR_INCLUDE_DIR)
+    _openexr_LIBRARIES OPENEXR_INCLUDE_DIR)
 
 IF(OPENEXR_FOUND)
   SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
   SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR})
 ENDIF(OPENEXR_FOUND)
 
-MARK_AS_ADVANCED(
-  ${_openexr_LIBRARIES}
-  OPENEXR_INCLUDE_DIR
-)
+MARK_AS_ADVANCED(OPENEXR_INCLUDE_DIR)
+FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
+  STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+  MARK_AS_ADVANCED(OPENEXR_${UPPERCOMPONENT}_LIBRARY)
+ENDFOREACH()

Modified: branches/soc-2011-onion/release/scripts/startup/bl_operators/nla.py
===================================================================
--- branches/soc-2011-onion/release/scripts/startup/bl_operators/nla.py	2011-06-16 15:18:56 UTC (rev 37555)
+++ branches/soc-2011-onion/release/scripts/startup/bl_operators/nla.py	2011-06-16 15:20:05 UTC (rev 37556)
@@ -118,8 +118,10 @@
     # -------------------------------------------------------------------------
     # Create action
 
+    # incase animation data hassnt been created
+    atd = obj.animation_data_create()
     action = bpy.data.actions.new("Action")
-    obj.animation_data.action = action
+    atd.action = action
 
     if do_pose:
         pose_items = pose.bones.items()

Modified: branches/soc-2011-onion/source/blender/blenkernel/intern/armature.c
===================================================================
--- branches/soc-2011-onion/source/blender/blenkernel/intern/armature.c	2011-06-16 15:18:56 UTC (rev 37555)
+++ branches/soc-2011-onion/source/blender/blenkernel/intern/armature.c	2011-06-16 15:20:05 UTC (rev 37556)
@@ -1343,8 +1343,12 @@
 	cross_v3_v3v3(axis,target,nor);
 
 	/* was 0.0000000000001, caused bug [#23954], smaller values give unstable
-	 * roll when toggling editmode */
-	if (dot_v3v3(axis,axis) > 0.00001f) {
+	 * roll when toggling editmode.
+	 *
+	 * was 0.00001, causes bug [#27675], with 0.00000495,
+	 * so a value inbetween these is needed.
+	 */
+	if (dot_v3v3(axis,axis) > 0.000001f) {
 		/* if nor is *not* a multiple of target ... */
 		normalize_v3(axis);
 		

Modified: branches/soc-2011-onion/source/blender/editors/interface/interface.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/interface/interface.c	2011-06-16 15:18:56 UTC (rev 37555)
+++ branches/soc-2011-onion/source/blender/editors/interface/interface.c	2011-06-16 15:20:05 UTC (rev 37556)
@@ -77,6 +77,10 @@
 #define PRECISION_FLOAT_MAX 7
 #define PRECISION_FLOAT_MAX_POW 10000000 /* pow(10, PRECISION_FLOAT_MAX)  */
 
+/* avoid unneeded calls to ui_get_but_val */
+#define UI_BUT_VALUE_UNSET DBL_MAX
+#define UI_GET_BUT_VALUE_INIT(_but, _value) if(_value == DBL_MAX) {  (_value)= ui_get_but_val(_but); }
+
 /* 
  * a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt
  * 
@@ -967,17 +971,16 @@
 
 /* ************* EVENTS ************* */
 
-static void ui_is_but_sel(uiBut *but)
+static void ui_is_but_sel(uiBut *but, double *value)
 {
-	double value; /* only initialized when needed, to avoid calling when not used */
 	short push=0, true=1;
 
 	if(ELEM3(but->type, TOGN, ICONTOGN, OPTIONN)) true= 0;
 
 	if( but->bit ) {
 		int lvalue;
-		value= ui_get_but_val(but);
-		lvalue= (int)value;
+		UI_GET_BUT_VALUE_INIT(but, *value)
+		lvalue= (int)*value;
 		if( BTST(lvalue, (but->bitnr)) ) push= true;
 		else push= !true;
 	}
@@ -997,24 +1000,24 @@
 		case BUT_TOGDUAL:
 		case ICONTOG:
 		case OPTION:
-			value= ui_get_but_val(but);
-			if(value != (double)but->hardmin) push= 1;
+			UI_GET_BUT_VALUE_INIT(but, *value)
+			if(*value != (double)but->hardmin) push= 1;
 			break;
 		case ICONTOGN:
 		case TOGN:
 		case OPTIONN:
-			value= ui_get_but_val(but);
-			if(value==0.0) push= 1;
+			UI_GET_BUT_VALUE_INIT(but, *value)
+			if(*value==0.0) push= 1;
 			break;
 		case ROW:
 		case LISTROW:
-			value= ui_get_but_val(but);
+			UI_GET_BUT_VALUE_INIT(but, *value)
 			/* support for rna enum buts */
 			if(but->rnaprop && (RNA_property_flag(but->rnaprop) & PROP_ENUM_FLAG)) {
-				if((int)value & (int)but->hardmax) push= 1;
+				if((int)*value & (int)but->hardmax) push= 1;
 			}
 			else {
-				if(value == (double)but->hardmax) push= 1;
+				if(*value == (double)but->hardmax) push= 1;
 			}
 			break;
 		case COL:
@@ -1385,6 +1388,10 @@
 					break;
 			}
 		}
+
+		/* we can't be sure what RNA set functions actually do,
+		 * so leave this unset */
+		value= UI_BUT_VALUE_UNSET;
 	}
 	else if(but->pointype==0);
 	else if(but->type==HSVSLI ) {
@@ -1425,19 +1432,19 @@
 		
 		/* then set value with possible edit override */
 		if(but->editval)
-			*but->editval= value;
+			value= *but->editval= value;
 		else if(but->pointype==CHA)
-			*((char *)but->poin)= (char)value;
+			value= *((char *)but->poin)= (char)value;
 		else if(but->pointype==SHO)
-			*((short *)but->poin)= (short)value;
+			value= *((short *)but->poin)= (short)value;
 		else if(but->pointype==INT)
-			*((int *)but->poin)= (int)value;
+			value= *((int *)but->poin)= (int)value;
 		else if(but->pointype==FLO)
-			*((float *)but->poin)= (float)value;
+			value= *((float *)but->poin)= (float)value;
 	}
 
 	/* update select flag */
-	ui_is_but_sel(but);
+	ui_is_but_sel(but, &value);
 }
 
 int ui_get_but_string_max_length(uiBut *but)
@@ -1758,50 +1765,70 @@
 
 void ui_set_but_soft_range(uiBut *but, double value)
 {
-	PropertyType type;
-	double softmin, softmax /*, step, precision*/;
-	
+	/* ideally we would not limit this but practially, its more then
+	 * enough worst case is very long vectors wont use a smart soft-range
+	 * which isnt so bad. */
+
 	if(but->rnaprop) {
-		type= RNA_property_type(but->rnaprop);
+		const PropertyType type= RNA_property_type(but->rnaprop);
+		double softmin, softmax /*, step, precision*/;
+		double value_min= value;
+		double value_max= value;
 
 		/* clamp button range to something reasonable in case
 		 * we get -inf/inf from RNA properties */
 		if(type == PROP_INT) {
 			int imin, imax, istep;
+			const int array_len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
 
 			RNA_property_int_ui_range(&but->rnapoin, but->rnaprop, &imin, &imax, &istep);
 			softmin= (imin == INT_MIN)? -1e4: imin;
 			softmax= (imin == INT_MAX)? 1e4: imax;
 			/*step= istep;*/ /*UNUSED*/
 			/*precision= 1;*/ /*UNUSED*/
+
+			if(array_len >= 2) {
+				int value_range[2];
+				RNA_property_int_get_array_range(&but->rnapoin, but->rnaprop, value_range);
+				value_min= (double)value_range[0];
+				value_max= (double)value_range[1];
+			}
 		}
 		else if(type == PROP_FLOAT) {
 			float fmin, fmax, fstep, fprecision;
+			const int array_len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
 
 			RNA_property_float_ui_range(&but->rnapoin, but->rnaprop, &fmin, &fmax, &fstep, &fprecision);
 			softmin= (fmin == -FLT_MAX)? (float)-1e4: fmin;
 			softmax= (fmax == FLT_MAX)? (float)1e4: fmax;
 			/*step= fstep;*/ /*UNUSED*/
 			/*precision= fprecision;*/ /*UNUSED*/
+
+			if(array_len >= 2) {
+				float value_range[2];
+				RNA_property_float_get_array_range(&but->rnapoin, but->rnaprop, value_range);
+				value_min= (double)value_range[0];
+				value_max= (double)value_range[1];
+			}
 		}
 		else
 			return;
 
 		/* if the value goes out of the soft/max range, adapt the range */
-		if(value+1e-10 < softmin) {
-			if(value < 0.0)
-				softmin= -soft_range_round_up(-value, -softmin);
+		if(value_min+1e-10 < softmin) {
+			if(value_min < 0.0)
+				softmin= -soft_range_round_up(-value_min, -softmin);
 			else
-				softmin= soft_range_round_down(value, softmin);
+				softmin= soft_range_round_down(value_min, softmin);
 
 			if(softmin < (double)but->hardmin)
 				softmin= (double)but->hardmin;
 		}
-		else if(value-1e-10 > softmax) {
-			if(value < 0.0)
-				softmax= -soft_range_round_down(-value, -softmax);
+		else if(value_max-1e-10 > softmax) {
+			if(value_max < 0.0)
+				softmax= -soft_range_round_down(-value_max, -softmax);
 			else
-				softmax= soft_range_round_up(value, softmax);
+				softmax= soft_range_round_up(value_max, softmax);
 
 			if(softmax > (double)but->hardmax)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list