Revision: 22718
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22718
Author:   campbellbarton
Date:     2009-08-23 09:46:34 +0200 (Sun, 23 Aug 2009)

Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22704:22717

Modified Paths:
--------------
    
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/collada.py
    
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/cstartup.py
    
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/translator.py
    
branches/blender2.5/blender/source/blender/editors/space_logic/logic_window.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_sensor_types.h
    
branches/blender2.5/blender/source/gameengine/Converter/KX_ConvertSensors.cpp
    branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
    branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.h
    branches/blender2.5/blender/source/gameengine/PyDoc/GameTypes.py

Modified: 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/collada.py
===================================================================
--- 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/collada.py   
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/collada.py   
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -108,6 +108,10 @@
                self.physicsModelsLibrary.LoadFromXml(self, 
xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_PHYSICS_MODELS))
                self.physicsScenesLibrary.LoadFromXml(self, 
xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_PHYSICS_SCENES))
 
+               # establish instance references in nodes library
+               for node in self.nodesLibrary.items:
+                       node.LinkInstances(self)
+
                # Get the sceneNodes
                sceneNodes = colladaNode.getElementsByTagName(DaeSyntax.SCENE)
 
@@ -1165,6 +1169,25 @@
                self.extras = []
                self.syntax = DaeSyntax.NODE
 
+       def LinkInstances(self, daeDocument):
+               for iAnimation in self.iAnimations:
+                       iAnimation.AssignLink(daeDocument.animationsLibrary)
+               for iCamera in self.iCameras:
+                       iCamera.AssignLink(daeDocument.cameraLibrary)
+               for iController in self.iControllers:
+                       iController.AssignLink(daeDocument.controllersLibrary)
+               for iGeometry in self.iGeometries:
+                       iGeometry.AssignLink(daeDocument.geometriesLibrary)
+               for iLight in self.iLights:
+                       iLight.AssignLink(daeDocument.lightsLibrary)
+               for iNode in self.iNodes:
+                       iNode.AssignLink(daeDocument.nodesLibrary)
+               for iVisualScene in self.iVisualScenes:
+                       iVisualScene.AssignLink(daeDocument.visualScenesLibrary)
+
+               for node in self.nodes:
+                       node.LinkInstances(daeDocument)
+
        def LoadFromXml(self, daeDocument, xmlNode):
                super(DaeNode, self).LoadFromXml(daeDocument, xmlNode)
                self.sid = xmlUtils.ReadAttribute(xmlNode, DaeSyntax.SID)
@@ -1769,6 +1792,9 @@
                self.extras = []
                self.object = None
 
+       def AssignLink(self, daeLibrary):
+               self.object = daeLibrary.FindObject(self.url)
+
        def LoadFromXml(self, daeDocument, xmlNode):
                self.url = ReadNodeUrl(xmlNode)
                self.extras = CreateObjectsFromXml(daeDocument, xmlNode, 
DaeSyntax.EXTRA, DaeExtra)
@@ -1997,7 +2023,7 @@
        LIBRARY_IMAGES = 'library_images'
        LIBRARY_LIGHTS = 'library_lights'
        LIBRARY_MATERIALS = 'library_materials'
-       LIBRARY_NODES = 'library_NODES'
+       LIBRARY_NODES = 'library_nodes'
        LIBRARY_PHYSICS_MATERIALS = 'library_physics_materials'
        LIBRARY_PHYSICS_MODELS = 'library_physics_models'
        LIBRARY_PHYSICS_SCENES = 'library_physics_scenes'
@@ -3460,7 +3486,6 @@
        attribute = xmlUtils.ReadAttribute(node,DaeSyntax.URL)
        if attribute == None: return None
        else :
-               attribute = str(attribute)
                if attribute.startswith('#'):
                        return attribute[1:]
        return None

Modified: 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/cstartup.py
===================================================================
--- 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/cstartup.py  
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/cstartup.py  
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -36,7 +36,7 @@
        print "Error! Could not find Blender modules!"
        _ERROR = True
 
-__version__ = '0.3.161'
+__version__ = '0.3.162'
 
 # Show the wait cursor in blender
 Blender.Window.WaitCursor(1)

Modified: 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/translator.py
===================================================================
--- 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/translator.py
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/release/scripts/bpymodules/colladaImEx/translator.py
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -6,6 +6,7 @@
 # Copyright (C) 2006: Illusoft - [email protected]
 #    - 2008.08: multiple bugfixes by migius (AKA Remigiusz Fiedler)
 #    - 2009.05: bugfixes by jan (AKA Jan Diederich)
+#    - 2009.08: bugfixed by nico (AKA Nicolai Wojke, Labor Bilderkennen 
Uni-Koblenz)
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,6 +26,14 @@
 # --------------------------------------------------------------------------
 
 # History
+# 2009.08.22 by nico:
+# - Fixed a bug where visual scene nodes containing instances of nodes in the 
nodes library, 
+#   which themselves instantiate geometry in the geometry library, where not 
imported
+#   correctly (only the node instantiation was created, not the geometry)
+# - Fixed a bug where nodes in the nodes library that have children 
instantiating other
+#   nodes in the nodes library where not resolved properly. Added a 
post-library-creation
+#   phase where DaeInstance object references are updated after the entire 
library is created
+# - Changed nodes library syntax from 'library_NODES' to 'library_nodes'
 # 2009.05.17 by jan:
 # - More information for the user if an error happened (wrong/missing 
parenting).
 # - Added a progress bar for export (bar for import already exists). 
@@ -2030,9 +2039,21 @@
 
                childlist = []
                for daeChild in daeNode.nodes:
-                       childSceneNode = SceneNode(self.document,self)
-                       object = childSceneNode.ObjectFromDae(daeChild)
-                       if object: childlist.append(object)
+                       try:
+                               childSceneNode = SceneNode(self.document,self)
+                               object = childSceneNode.ObjectFromDae(daeChild)
+                               if object: childlist.append(object)
+                       except NameError:
+                               if debprn: print "a child of node " + 
daeNode.id + " has no id ? ?"
+               for iDaeChild in daeNode.iNodes:
+                       try:
+                               childSceneNode = SceneNode(self.document,self)
+                               object = 
childSceneNode.ObjectFromDae(iDaeChild.object)
+                               if object:
+                                       newObject.makeParent([object], 
noninverse , 1)
+                                       childlist.append(object)
+                       except NoneType:
+                               if debprn: print "a child instance of node " + 
daeNode.id + " has no id ? ?"
 
                if newObject:
                        if not self.isJoint and not self.armature:

Modified: 
branches/blender2.5/blender/source/blender/editors/space_logic/logic_window.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_logic/logic_window.c   
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/source/blender/editors/space_logic/logic_window.c   
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -1314,10 +1314,16 @@
                        * proper compatibility with older .blend files. */
                        str= "Type %t|Left button %x1|Middle button %x2|"
                                "Right button %x4|Wheel Up %x5|Wheel Down 
%x6|Movement %x8|Mouse over %x16|Mouse over any%x32"; 
-                       uiDefButS(block, MENU, B_REDR, str, xco+10, yco-44, 
width-20, 19,
+                       uiDefButS(block, MENU, B_REDR, str, xco+10, yco-44, 
(width*0.8f)-20, 19,
                                &ms->type, 0, 31, 0, 0,
                                "Specify the type of event this mouse sensor 
should trigger on");
                        
+                       if(ms->type==32) {
+                               uiDefButBitS(block, TOG, 
SENS_MOUSE_FOCUS_PULSE, B_REDR, "Pulse",(short)(xco + 10) + 
(width*0.8f)-20,(short)(yco - 44),
+                                       (short)(0.20 * (width-20)), 19, 
&ms->flag, 0.0, 0.0, 0, 0,
+                                       "Moving the mouse over a different 
object generates a pulse");  
+                       }
+                       
                        yco-= ysize;
                        break;
                }

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_sensor_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_sensor_types.h      
2009-08-23 07:33:29 UTC (rev 22717)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_sensor_types.h      
2009-08-23 07:46:34 UTC (rev 22718)
@@ -178,6 +178,9 @@
 
 /* bMouseSensor->type: uses blender event defines */
 
+/* bMouseSensor->flag: only pulse for now */
+#define SENS_MOUSE_FOCUS_PULSE 1
+
 /* propertysensor->type */
 #define SENS_PROP_EQUAL                0
 #define SENS_PROP_NEQUAL       1

Modified: 
branches/blender2.5/blender/source/gameengine/Converter/KX_ConvertSensors.cpp
===================================================================
--- 
branches/blender2.5/blender/source/gameengine/Converter/KX_ConvertSensors.cpp   
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/source/gameengine/Converter/KX_ConvertSensors.cpp   
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -536,6 +536,7 @@
                                                        starty,
                                                        keytype,
                                                        trackfocus,
+                                                       (bmouse->flag & 
SENS_MOUSE_FOCUS_PULSE) ? true:false,
                                                        kxscene,
                                                        kxengine,
                                                        gameobj); 

Modified: 
branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
===================================================================
--- 
branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp    
    2009-08-23 07:33:29 UTC (rev 22717)
+++ 
branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp    
    2009-08-23 07:46:34 UTC (rev 22718)
@@ -61,11 +61,13 @@
                                                                                
 int starty,
                                                                                
 short int mousemode,
                                                                                
 int focusmode,
+                                                                               
 bool bTouchPulse,
                                                                                
 KX_Scene* kxscene,
                                                                                
 KX_KetsjiEngine *kxengine,
                                                                                
 SCA_IObject* gameobj)
        : SCA_MouseSensor(eventmgr, startx, starty, mousemode, gameobj),
          m_focusmode(focusmode),
+         m_bTouchPulse(bTouchPulse),
          m_kxscene(kxscene),
          m_kxengine(kxengine)
 {
@@ -77,6 +79,7 @@
        m_mouse_over_in_previous_frame = (m_invert)?true:false;
        m_positive_event = false;
        m_hitObject = 0;
+       m_hitObject_Last = NULL;
        m_reset = true;
        
        m_hitPosition.setValue(0,0,0);
@@ -107,7 +110,10 @@
                        m_positive_event = true;
                        if (!m_mouse_over_in_previous_frame) {
                                result = true;
-                       } 
+                       }
+                       else if(m_bTouchPulse && (m_hitObject != 
m_hitObject_Last)) {
+                               result = true;
+                       }
                } 
                if (reset) {
                        // force an event 
@@ -123,7 +129,8 @@
        }
 
        m_mouse_over_in_previous_frame = obHasFocus;
-
+       m_hitObject_Last = (void *)m_hitObject;
+                                          
        return result;
 }
 
@@ -378,6 +385,7 @@
        KX_PYATTRIBUTE_RO_FUNCTION("hitObject",         KX_MouseFocusSensor, 
pyattr_get_hit_object),
        KX_PYATTRIBUTE_RO_FUNCTION("hitPosition",       KX_MouseFocusSensor, 
pyattr_get_hit_position),
        KX_PYATTRIBUTE_RO_FUNCTION("hitNormal",         KX_MouseFocusSensor, 
pyattr_get_hit_normal),
+       KX_PYATTRIBUTE_BOOL_RW("usePulseFocus", 
KX_MouseFocusSensor,m_bTouchPulse),
        { NULL }        //Sentinel
 };
 

Modified: 
branches/blender2.5/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.h
===================================================================

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to