[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22291] branches/blender2.5/blender: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22205 :22290
Campbell Barton
ideasman42 at gmail.com
Fri Aug 7 06:41:16 CEST 2009
Revision: 22291
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22291
Author: campbellbarton
Date: 2009-08-07 06:41:15 +0200 (Fri, 07 Aug 2009)
Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22205:22290
Modified Paths:
--------------
branches/blender2.5/blender/release/scripts/export_map.py
branches/blender2.5/blender/release/scripts/md2_export.py
branches/blender2.5/blender/source/blender/blenkernel/BKE_library.h
branches/blender2.5/blender/source/blender/blenkernel/intern/library.c
branches/blender2.5/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.cpp
branches/blender2.5/blender/source/gameengine/Ketsji/KX_Scene.cpp
Modified: branches/blender2.5/blender/release/scripts/export_map.py
===================================================================
--- branches/blender2.5/blender/release/scripts/export_map.py 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/release/scripts/export_map.py 2009-08-07 04:41:15 UTC (rev 22291)
@@ -249,6 +249,10 @@
file.write('{\n')
for name_value in props:
file.write('"%s" "%s"\n' % name_value)
+ if PREF_GRID_SNAP.val:
+ file.write('"origin" "%d %d %d"\n' % tuple([round(axis*PREF_SCALE.val) for axis in ob.getLocation('worldspace')]) )
+ else:
+ file.write('"origin" "%.6f %.6f %.6f"\n' % tuple([axis*PREF_SCALE.val for axis in ob.getLocation('worldspace')]) )
file.write('}\n')
return True
@@ -447,4 +451,4 @@
Window.FileSelector(export_map, 'EXPORT MAP', '*.map')
if __name__ == '__main__': main()
-# export_map('/foo.map')
\ No newline at end of file
+# export_map('/foo.map')
Modified: branches/blender2.5/blender/release/scripts/md2_export.py
===================================================================
--- branches/blender2.5/blender/release/scripts/md2_export.py 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/release/scripts/md2_export.py 2009-08-07 04:41:15 UTC (rev 22291)
@@ -923,7 +923,8 @@
maxdot = dot;
maxdotindex = j;
- md2.frames[frame_counter].vertices[vert_counter].lightnormalindex=maxdotindex+2
+ # See patch [#19206], gives good info on this line below.
+ md2.frames[frame_counter].vertices[vert_counter].lightnormalindex=maxdotindex
del maxdot, maxdotindex
del new_x, new_y, new_z
Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_library.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_library.h 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_library.h 2009-08-07 04:41:15 UTC (rev 22291)
@@ -58,6 +58,7 @@
void free_libblock(struct ListBase *lb, void *idv);
void free_libblock_us(struct ListBase *lb, void *idv);
void free_main(struct Main *mainvar);
+void tag_main(struct Main *mainvar, int tag);
void splitIDname(char *name, char *left, int *nr);
void rename_id(struct ID *id, char *name);
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/library.c 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/library.c 2009-08-07 04:41:15 UTC (rev 22291)
@@ -1030,7 +1030,21 @@
}
}
+void tag_main(struct Main *mainvar, int tag)
+{
+ ListBase *lbarray[MAX_LIBARRAY];
+ ID *id;
+ int a;
+ a= set_listbasepointers(mainvar, lbarray);
+ while(a--) {
+ for(id= lbarray[a]->first; id; id= id->next) {
+ if(tag) id->flag |= LIB_DOIT;
+ else id->flag &= ~LIB_DOIT;
+ }
+ }
+}
+
/* if lib!=NULL, only all from lib local */
void all_local(Library *lib, int untagged_only)
{
Modified: branches/blender2.5/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2009-08-07 04:41:15 UTC (rev 22291)
@@ -2504,7 +2504,7 @@
for (i=0;i<sumolist->GetCount();i++)
{
KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i);
- struct Object* blenderobject = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobject = gameobj->GetBlenderObject();
int nummeshes = gameobj->GetMeshCount();
RAS_MeshObject* meshobj = 0;
if (nummeshes > 0)
@@ -2520,7 +2520,7 @@
for (i=0;i<sumolist->GetCount();i++)
{
KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i);
- struct Object* blenderobject = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobject = gameobj->GetBlenderObject();
int nummeshes = gameobj->GetMeshCount();
RAS_MeshObject* meshobj = 0;
if (nummeshes > 0)
@@ -2548,7 +2548,7 @@
for (i=0;i<sumolist->GetCount();i++)
{
KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i);
- struct Object* blenderobject = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobject = gameobj->GetBlenderObject();
ListBase *conlist;
bConstraint *curcon;
conlist = get_active_constraints2(blenderobject);
@@ -2645,7 +2645,7 @@
for (i=0;i<logicbrick_conversionlist->GetCount();i++)
{
KX_GameObject* gameobj = static_cast<KX_GameObject*>(logicbrick_conversionlist->GetValue(i));
- struct Object* blenderobj = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobj = gameobj->GetBlenderObject();
int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0;
bool isInActiveLayer = (blenderobj->lay & layerMask)!=0;
BL_ConvertActuators(maggie->name, blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,layerMask,isInActiveLayer,rendertools,converter);
@@ -2653,7 +2653,7 @@
for ( i=0;i<logicbrick_conversionlist->GetCount();i++)
{
KX_GameObject* gameobj = static_cast<KX_GameObject*>(logicbrick_conversionlist->GetValue(i));
- struct Object* blenderobj = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobj = gameobj->GetBlenderObject();
int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0;
bool isInActiveLayer = (blenderobj->lay & layerMask)!=0;
BL_ConvertControllers(blenderobj,gameobj,logicmgr,pythondictionary,layerMask,isInActiveLayer,converter);
@@ -2661,7 +2661,7 @@
for ( i=0;i<logicbrick_conversionlist->GetCount();i++)
{
KX_GameObject* gameobj = static_cast<KX_GameObject*>(logicbrick_conversionlist->GetValue(i));
- struct Object* blenderobj = converter->FindBlenderObject(gameobj);
+ struct Object* blenderobj = gameobj->GetBlenderObject();
int layerMask = (groupobj.find(blenderobj) == groupobj.end()) ? activeLayerBitInfo : 0;
bool isInActiveLayer = (blenderobj->lay & layerMask)!=0;
BL_ConvertSensors(blenderobj,gameobj,logicmgr,kxscene,ketsjiEngine,layerMask,isInActiveLayer,canvas,converter);
Modified: branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp 2009-08-07 03:51:28 UTC (rev 22290)
+++ branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp 2009-08-07 04:41:15 UTC (rev 22291)
@@ -345,10 +345,6 @@
//This cache mecanism is buggy so I leave it disable and the memory leak
//that would result from this is fixed in RemoveScene()
m_map_mesh_to_gamemesh.clear();
- //Don't clear this lookup, it is needed for the baking physics into ipo animation
- //To avoid it's infinite grows, object will be unregister when they are deleted
- //see KX_Scene::NewRemoveObject
- //m_map_gameobject_to_blender.clear();
}
// This function removes all entities stored in the converter for that scene
@@ -462,27 +458,28 @@
KX_GameObject *gameobject,
struct Object *for_blenderobject)
{
- m_map_gameobject_to_blender.insert(CHashedPtr(gameobject),for_blenderobject);
+ /* only maintained while converting, freed during game runtime */
m_map_blender_to_gameobject.insert(CHashedPtr(for_blenderobject),gameobject);
}
void KX_BlenderSceneConverter::UnregisterGameObject(
KX_GameObject *gameobject)
{
- CHashedPtr gptr(gameobject);
- struct Object **bobp= m_map_gameobject_to_blender[gptr];
+#if 0
+ struct Object *bobp= gameobject->GetBlenderObject();
if (bobp) {
- CHashedPtr bptr(*bobp);
+ CHashedPtr bptr(bobp);
KX_GameObject **gobp= m_map_blender_to_gameobject[bptr];
if (gobp && *gobp == gameobject)
+ {
// also maintain m_map_blender_to_gameobject if the gameobject
// being removed is matching the blender object
m_map_blender_to_gameobject.remove(bptr);
- m_map_gameobject_to_blender.remove(gptr);
+ }
}
+#endif
}
-
KX_GameObject *KX_BlenderSceneConverter::FindGameObject(
struct Object *for_blenderobject)
{
@@ -491,18 +488,6 @@
return obp?*obp:NULL;
}
-
-
-struct Object *KX_BlenderSceneConverter::FindBlenderObject(
- KX_GameObject *for_gameobject)
-{
- struct Object **obp= m_map_gameobject_to_blender[CHashedPtr(for_gameobject)];
-
- return obp?*obp:NULL;
-}
-
-
-
void KX_BlenderSceneConverter::RegisterGameMesh(
RAS_MeshObject *gamemesh,
struct Mesh *for_blendermesh)
@@ -689,7 +674,7 @@
{
//KX_IPhysicsController* physCtrl = gameObj->GetPhysicsController();
- Object* blenderObject = FindBlenderObject(gameObj);
+ Object* blenderObject = gameObj->GetBlenderObject();
if (blenderObject)
{
//erase existing ipo's
@@ -753,7 +738,7 @@
for (int ix=0;ix<parentList->GetCount();ix++){
KX_GameObject* gameobj = (KX_GameObject*)parentList->GetValue(ix);
if (!gameobj->IsDynamic()){
- Object* blenderobject = FindBlenderObject(gameobj);
+ Object* blenderobject = gameobj->GetBlenderObject();
if (!blenderobject)
continue;
if (blenderobject->type==OB_ARMATURE)
@@ -807,7 +792,7 @@
{
//KX_IPhysicsController* physCtrl = gameObj->GetPhysicsController();
- Object* blenderObject = FindBlenderObject(gameObj);
+ Object* blenderObject = gameObj->GetBlenderObject();
if (blenderObject && blenderObject->ipo)
{
const MT_Point3& position = gameObj->NodeGetWorldPosition();
@@ -908,7 +893,7 @@
{
//KX_IPhysicsController* physCtrl = gameObj->GetPhysicsController();
- Object* blenderObject = FindBlenderObject(gameObj);
+ Object* blenderObject = gameObj->GetBlenderObject();
if (blenderObject && blenderObject->ipo)
{
// XXX animato
Modified: branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
===================================================================
--- branches/blender2.5/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h 2009-08-07 03:51:28 UTC (rev 22290)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list