[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22718] branches/blender2.5/blender: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22704 :22717
Campbell Barton
ideasman42 at gmail.com
Sun Aug 23 09:46:34 CEST 2009
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 - colladablender at illusoft.com
# - 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. @@
More information about the Bf-blender-cvs
mailing list