[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20521] branches/bb_dev: svn merge -r 20407:20520 https://svn.blender.org/svnroot/bf-blender/trunk/ blender

Benoit Bolsee benoit.bolsee at online.be
Sat May 30 22:16:17 CEST 2009


Revision: 20521
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20521
Author:   ben2610
Date:     2009-05-30 22:16:17 +0200 (Sat, 30 May 2009)

Log Message:
-----------
svn merge -r 20407:20520 https://svn.blender.org/svnroot/bf-blender/trunk/blender

Modified Paths:
--------------
    branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp
    branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h
    branches/bb_dev/extern/ffmpeg/libavcodec/eval.c
    branches/bb_dev/extern/libopenjpeg/jp2.c
    branches/bb_dev/release/VERSION
    branches/bb_dev/release/datafiles/splash.jpg
    branches/bb_dev/release/scripts/bpymodules/colladaImEx/cstartup.py
    branches/bb_dev/release/scripts/bpymodules/colladaImEx/translator.py
    branches/bb_dev/release/scripts/bpymodules/dxfLibrary.py
    branches/bb_dev/release/scripts/export_dxf.py
    branches/bb_dev/release/scripts/import_dxf.py
    branches/bb_dev/source/blender/blenkernel/BKE_blender.h
    branches/bb_dev/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    branches/bb_dev/source/blender/blenkernel/intern/anim.c
    branches/bb_dev/source/blender/blenkernel/intern/writeffmpeg.c
    branches/bb_dev/source/blender/blenlib/intern/util.c
    branches/bb_dev/source/blender/blenloader/intern/readfile.c
    branches/bb_dev/source/blender/imbuf/IMB_imbuf.h
    branches/bb_dev/source/blender/imbuf/intern/imageprocess.c
    branches/bb_dev/source/blender/imbuf/intern/openexr/openexr_api.cpp
    branches/bb_dev/source/blender/include/BSE_sequence.h
    branches/bb_dev/source/blender/makesdna/DNA_space_types.h
    branches/bb_dev/source/blender/nodes/intern/SHD_nodes/SHD_material.c
    branches/bb_dev/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
    branches/bb_dev/source/blender/python/BPY_interface.c
    branches/bb_dev/source/blender/python/api2_2x/Geometry.c
    branches/bb_dev/source/blender/python/api2_2x/Material.c
    branches/bb_dev/source/blender/python/api2_2x/World.c
    branches/bb_dev/source/blender/python/api2_2x/bpy_data.c
    branches/bb_dev/source/blender/python/api2_2x/bpy_internal_import.c
    branches/bb_dev/source/blender/python/api2_2x/bpy_internal_import.h
    branches/bb_dev/source/blender/python/api2_2x/doc/Material.py
    branches/bb_dev/source/blender/python/api2_2x/doc/World.py
    branches/bb_dev/source/blender/render/extern/include/RE_shader_ext.h
    branches/bb_dev/source/blender/render/intern/source/rayshade.c
    branches/bb_dev/source/blender/src/butspace.c
    branches/bb_dev/source/blender/src/buttons_editing.c
    branches/bb_dev/source/blender/src/buttons_logic.c
    branches/bb_dev/source/blender/src/buttons_object.c
    branches/bb_dev/source/blender/src/drawobject.c
    branches/bb_dev/source/blender/src/drawseq.c
    branches/bb_dev/source/blender/src/drawview.c
    branches/bb_dev/source/blender/src/editsima.c
    branches/bb_dev/source/blender/src/header_seq.c
    branches/bb_dev/source/blender/src/imagepaint.c
    branches/bb_dev/source/blender/src/sequence.c
    branches/bb_dev/source/blender/src/splash.jpg.c
    branches/bb_dev/source/creator/creator.c
    branches/bb_dev/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    branches/bb_dev/source/gameengine/Expressions/CMakeLists.txt
    branches/bb_dev/source/gameengine/Expressions/ListValue.cpp
    branches/bb_dev/source/gameengine/Expressions/ListValue.h
    branches/bb_dev/source/gameengine/Expressions/PyObjectPlus.cpp
    branches/bb_dev/source/gameengine/Expressions/Value.cpp
    branches/bb_dev/source/gameengine/Expressions/Value.h
    branches/bb_dev/source/gameengine/GameLogic/CMakeLists.txt
    branches/bb_dev/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
    branches/bb_dev/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
    branches/bb_dev/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
    branches/bb_dev/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
    branches/bb_dev/source/gameengine/GameLogic/SCA_IController.cpp
    branches/bb_dev/source/gameengine/GameLogic/SCA_PythonController.cpp
    branches/bb_dev/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    branches/bb_dev/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt
    branches/bb_dev/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_Camera.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_ClientObjectInfo.h
    branches/bb_dev/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_ConstraintWrapper.h
    branches/bb_dev/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_GameObject.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_GameObject.h
    branches/bb_dev/source/gameengine/Ketsji/KX_MeshProxy.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_PythonInit.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_TouchEventManager.cpp
    branches/bb_dev/source/gameengine/Ketsji/KX_TouchSensor.cpp
    branches/bb_dev/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
    branches/bb_dev/source/gameengine/PyDoc/GameTypes.py
    branches/bb_dev/source/gameengine/Rasterizer/RAS_MeshObject.cpp
    branches/bb_dev/source/gameengine/Rasterizer/RAS_MeshObject.h
    branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    branches/bb_dev/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
    branches/bb_dev/source/gameengine/VideoTexture/PyTypeList.cpp
    branches/bb_dev/source/gameengine/VideoTexture/VideoBase.cpp
    branches/bb_dev/source/gameengine/VideoTexture/VideoBase.h
    branches/bb_dev/source/gameengine/VideoTexture/VideoFFmpeg.cpp
    branches/bb_dev/source/gameengine/VideoTexture/VideoFFmpeg.h
    branches/bb_dev/source/nan_definitions.mk

Added Paths:
-----------
    branches/bb_dev/release/scripts/scripttemplate_gamelogic_module.py
    branches/bb_dev/release/text/release_249.txt

Modified: branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp
===================================================================
--- branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp	2009-05-30 20:16:17 UTC (rev 20521)
@@ -420,6 +420,7 @@
 bool btGeneric6DofConstraint::testAngularLimitMotor(int axis_index)
 {
 	btScalar angle = m_calculatedAxisAngleDiff[axis_index];
+	m_angularLimits[axis_index].m_currentPosition = angle;
 	//test limits
 	m_angularLimits[axis_index].testLimitValue(angle);
 	return m_angularLimits[axis_index].needApplyTorques();
@@ -544,6 +545,7 @@
 		{ // re-use rotational motor code
 			limot.m_bounce = btScalar(0.f);
 			limot.m_currentLimit = m_linearLimits.m_currentLimit[i];
+			limot.m_currentPosition = m_linearLimits.m_currentLinearDiff[i];
 			limot.m_currentLimitError  = m_linearLimits.m_currentLimitError[i];
 			limot.m_damping  = m_linearLimits.m_damping;
 			limot.m_enableMotor  = m_linearLimits.m_enableMotor[i];
@@ -696,6 +698,7 @@
 	m_calculatedLinearDiff = m_calculatedTransformA.getBasis().inverse() * m_calculatedLinearDiff;
 	for(int i = 0; i < 3; i++)
 	{
+		m_linearLimits.m_currentLinearDiff[i] = m_calculatedLinearDiff[i];
 		m_linearLimits.testLimitValue(i, m_calculatedLinearDiff[i]);
 	}
 }
@@ -740,16 +743,21 @@
         }
         // if we're limited low and high simultaneously, the joint motor is
         // ineffective
-        if (limit && (limot->m_loLimit == limot->m_hiLimit)) 
-			powered = 0;
-
+        if (limit && (limot->m_loLimit == limot->m_hiLimit)) powered = 0;
         info->m_constraintError[srow] = btScalar(0.f);
         if (powered)
         {
             info->cfm[srow] = 0.0f;
             if(!limit)
             {
-                info->m_constraintError[srow] += limot->m_targetVelocity;
+				btScalar tag_vel = rotational ? limot->m_targetVelocity : -limot->m_targetVelocity;
+
+				btScalar mot_fact = getMotorFactor(	limot->m_currentPosition, 
+													limot->m_loLimit,
+													limot->m_hiLimit, 
+													tag_vel, 
+													info->fps * info->erp);
+				info->m_constraintError[srow] += mot_fact * limot->m_targetVelocity;
                 info->m_lowerLimit[srow] = -limot->m_maxMotorForce;
                 info->m_upperLimit[srow] = limot->m_maxMotorForce;
             }
@@ -831,6 +839,7 @@
 
 
 
+
 btGeneric6DofSpringConstraint::btGeneric6DofSpringConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA)
 	: btGeneric6DofConstraint(rbA, rbB, frameInA, frameInB, useLinearReferenceFrameA)
 {

Modified: branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h
===================================================================
--- branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h	2009-05-30 20:16:17 UTC (rev 20521)
@@ -54,6 +54,7 @@
     //! temp_variables
     //!@{
     btScalar m_currentLimitError;//!  How much is violated this limit
+    btScalar m_currentPosition;     //!  current value of angle 
     int m_currentLimit;//!< 0=free, 1=at lo limit, 2=at hi limit
     btScalar m_accumulatedImpulse;
     //!@}
@@ -134,6 +135,7 @@
     btVector3	m_targetVelocity;//!< target motor velocity
     btVector3	m_maxMotorForce;//!< max force on motor
     btVector3	m_currentLimitError;//!  How much is violated this limit
+    btVector3	m_currentLinearDiff;//!  Current relative offset of constraint frames
     int			m_currentLimit[3];//!< 0=free, 1=at lower limit, 2=at upper limit
 
     btTranslationalLimitMotor()
@@ -478,6 +480,16 @@
 };
 
 
+/// Generic 6 DOF constraint that allows to set spring motors to any translational and rotational DOF
+
+/// DOF index used in enableSpring() and setStiffness() means:
+/// 0 : translation X
+/// 1 : translation Y
+/// 2 : translation Z
+/// 3 : rotation X (3rd Euler rotational around new position of X axis, range [-PI+epsilon, PI-epsilon] )
+/// 4 : rotation Y (2nd Euler rotational around new position of Y axis, range [-PI/2+epsilon, PI/2-epsilon] )
+/// 5 : rotation Z (1st Euler rotational around Z axis, range [-PI+epsilon, PI-epsilon] )
+
 class btGeneric6DofSpringConstraint : public btGeneric6DofConstraint
 {
 protected:
@@ -494,4 +506,5 @@
 	virtual void getInfo2 (btConstraintInfo2* info);
 };
 
+
 #endif //GENERIC_6DOF_CONSTRAINT_H

Modified: branches/bb_dev/extern/ffmpeg/libavcodec/eval.c
===================================================================
--- branches/bb_dev/extern/ffmpeg/libavcodec/eval.c	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/extern/ffmpeg/libavcodec/eval.c	2009-05-30 20:16:17 UTC (rev 20521)
@@ -36,7 +36,8 @@
 #include <string.h>
 #include <math.h>
 
-#ifndef NAN
+#if !defined(NAN) || defined(__sun__)
+  #undef NAN
   #define NAN 0.0/0.0
 #endif
 

Modified: branches/bb_dev/extern/libopenjpeg/jp2.c
===================================================================
--- branches/bb_dev/extern/libopenjpeg/jp2.c	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/extern/libopenjpeg/jp2.c	2009-05-30 20:16:17 UTC (rev 20521)
@@ -561,6 +561,7 @@
 	image = j2k_decode(jp2->j2k, cio, cstr_info);
 	if(!image) {
 		opj_event_msg(cinfo, EVT_ERROR, "Failed to decode J2K image\n");
+		return NULL;
 	}
 
 	/* Set Image Color Space */

Modified: branches/bb_dev/release/VERSION
===================================================================
--- branches/bb_dev/release/VERSION	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/release/VERSION	2009-05-30 20:16:17 UTC (rev 20521)
@@ -1 +1 @@
-2.48
+2.49

Modified: branches/bb_dev/release/datafiles/splash.jpg
===================================================================
(Binary files differ)

Modified: branches/bb_dev/release/scripts/bpymodules/colladaImEx/cstartup.py
===================================================================
--- branches/bb_dev/release/scripts/bpymodules/colladaImEx/cstartup.py	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/release/scripts/bpymodules/colladaImEx/cstartup.py	2009-05-30 20:16:17 UTC (rev 20521)
@@ -523,6 +523,11 @@
 
 	LoadDefaultVals()
 
+def CalcElapsedTime(startTime):
+	'''
+	Calc elapsed time between now and start time.
+	'''	
+	return Blender.sys.time() - startTime	
 
 def Event(evt, val):
 	pass
@@ -674,20 +679,20 @@
 										lookAt, usePhysics, exportCurrentScene, \
 										exportRelativePaths, useUV, sampleAnimation, \
 										onlyMainScene, applyModifiers)
-			# Redraw al 3D windows.
+			
+			cutils.Debug.Debug('Time to process and save data: %.1f' \
+							% CalcElapsedTime(startTime), 'FEEDBACK')
+			
+			# Redraw all 3D windows.
 			Blender.Window.RedrawAll()
-
-			# calculate the elapsed time
-			endTime = Blender.sys.time()
-			elapsedTime = endTime - startTime
+			
 			Blender.Draw.PupMenu(importExportText + " Successful %t")
-		except:
-			endTime = Blender.sys.time()
-			elapsedTime = endTime - startTime
+		except:						
 			Blender.Draw.PupMenu(importExportText + "ing failed%t | Check the console for more info")
 			raise # throw the exception
 
-		cutils.Debug.Debug('FINISHED - time elapsed: %.1f'%(elapsedTime),'FEEDBACK')
+		cutils.Debug.Debug('FINISHED - time elapsed: %.1f' % CalcElapsedTime(startTime), \
+						'FEEDBACK')
 
 		# Hide the wait cursor in blender
 		Blender.Window.WaitCursor(0)

Modified: branches/bb_dev/release/scripts/bpymodules/colladaImEx/translator.py
===================================================================
--- branches/bb_dev/release/scripts/bpymodules/colladaImEx/translator.py	2009-05-30 17:33:37 UTC (rev 20520)
+++ branches/bb_dev/release/scripts/bpymodules/colladaImEx/translator.py	2009-05-30 20:16:17 UTC (rev 20521)
@@ -398,8 +398,6 @@
 					self.containerMesh = temp_mesh
 		if not self.containerMesh:
 			self.containerMesh = Blender.Mesh.New(temp_mesh_name)
-		
-		del temp_mesh
 		#------------ [end] Copied from export OBJ ------------------------
 		
 		# Loop through all scenes
@@ -2107,29 +2105,30 @@
 			instance = collada.DaeGeometryInstance()
 			daeGeometry = self.document.colladaDocument.geometriesLibrary.FindObject(bNode.getData(True))
 			meshNode = MeshNode(self.document)
-			if daeGeometry is None:
-				# TODO: Maybe add a for-loop if multiple instance are made by
-				# 		a transformation. But so far even a double mirror
-				#		(x and y axis) results only in _1_ instance.
-				derivedObject = BPyObject.getDerivedObjects(bNode)[0][0]
-				virtualMesh = BPyMesh.getMeshFromObject(derivedObject, \
-								self.document.containerMesh, applyModifiers, False, bScene)
-				if debprn:
-					print("Virtual mesh: " + str(virtualMesh) )
-					# + "; type: " + str(type(virtualMesh)))
-				if not virtualMesh:
-					# Fallback!
-					# Should never happen!
-					# (The "mesh=1" param on the getData() method ensures that
-					# it gets a "Mesh" instead of a "NMesh".) 
-					print("Error while trying to save derived object / apply modifiers. Try saving " \
-						  + "more direct, all modifiers will be ignored.")
-					daeGeometry = meshNode.SaveToDae(bNode.getData(mesh=1))
-				else:
-					# Apply original name from untransformed object
-					# to transformed object (name is later copied 1:1 to id).
-					virtualMesh.name = derivedObject.name
-					daeGeometry = meshNode.SaveToDae(virtualMesh)
+			if daeGeometry is None:							   
+				derivedObjsMatrices = BPyObject.getDerivedObjects(bNode)
+				for derivedObject, matrix in derivedObjsMatrices:
+					virtualMesh = BPyMesh.getMeshFromObject(derivedObject, \
+									self.document.containerMesh, applyModifiers, False, bScene)					
+					if debprn:
+						print("Virtual mesh: " + str(virtualMesh) )
+						# + "; type: " + str(type(virtualMesh)))
+					if not virtualMesh:
+						# Fallback!
+						# Should never happen!
+						# (The "mesh=1" param on the getData() method ensures that
+						# it gets a "Mesh" instead of a "NMesh".) 
+						print("Error while trying to save derived object / apply modifiers. Try saving " \
+							  + "more direct, all modifiers will be ignored.")

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list