[Python-ogre-commit] SF.net SVN: python-ogre:[799] trunk/python-ogre
Brought to you by:
andy_miller,
roman_yakovenko
From: <and...@us...> - 2008-11-18 07:52:57
|
Revision: 799 http://python-ogre.svn.sourceforge.net/python-ogre/?rev=799&view=rev Author: andy_miller Date: 2008-11-18 07:52:54 +0000 (Tue, 18 Nov 2008) Log Message: ----------- OgreOde and Ode updates for Linux Modified Paths: -------------- trunk/python-ogre/PythonOgreConfig_posix.py trunk/python-ogre/code_generators/ode/generate_code.py trunk/python-ogre/code_generators/ode/return_pointee_value.hpp trunk/python-ogre/code_generators/ogre/return_pointee_value.hpp trunk/python-ogre/environment.py trunk/python-ogre/patch/ogreode.patch Modified: trunk/python-ogre/PythonOgreConfig_posix.py =================================================================== --- trunk/python-ogre/PythonOgreConfig_posix.py 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/PythonOgreConfig_posix.py 2008-11-18 07:52:54 UTC (rev 799) @@ -47,7 +47,7 @@ PATH_OIS = os.path.join(BASE_DIR, 'ogre','Dependencies') PATH_Newton = os.path.join(BASE_DIR, 'newtonSDK','sdk') -PATH_ODE = os.path.join(BASE_DIR, 'ode-0.9') +PATH_ODE = os.path.join(BASE_DIR, 'ode-0.10.1') PATH_OGG = os.path.join(BASE_DIR, 'libogg-1.1.3') PATH_VORBIS= os.path.join(BASE_DIR, 'libvorbis-1.2.0') PATH_OPENAL= os.path.join(BASE_DIR, 'openal-soft-1.5.304') Modified: trunk/python-ogre/code_generators/ode/generate_code.py =================================================================== --- trunk/python-ogre/code_generators/ode/generate_code.py 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/code_generators/ode/generate_code.py 2008-11-18 07:52:54 UTC (rev 799) @@ -335,8 +335,11 @@ return_pointee_value_source_path \ = os.path.join ( os.path.dirname(code_repository.__file__), 'return_pointee_value.hpp') + if not os.path.exists(return_pointee_value_source_path): + return_pointee_value_source_path \ + = os.path.join ( os.getcwd(), + 'return_pointee_value.hpp') - print return_pointee_value_source_path return_pointee_value_target_path \ = os.path.join( environment.ode.generated_dir, 'return_pointee_value.hpp' ) Modified: trunk/python-ogre/code_generators/ode/return_pointee_value.hpp =================================================================== --- trunk/python-ogre/code_generators/ode/return_pointee_value.hpp 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/code_generators/ode/return_pointee_value.hpp 2008-11-18 07:52:54 UTC (rev 799) @@ -1,3 +1,8 @@ +// Copyright 2004-2008 Roman Yakovenko. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + #ifndef RETURN_POINTEE_VALUE_9_11_2006 #define RETURN_POINTEE_VALUE_9_11_2006 @@ -25,7 +30,7 @@ }; template <class R> - struct reference_existing_object_requires_a_pointer_return_type + struct return_pointee_value_requires_a_pointer_return_type # if defined(__GNUC__) && __GNUC__ >= 3 || defined(__EDG__) {} # endif @@ -44,7 +49,7 @@ typedef typename mpl::if_c< ok , to_python_indirect<T, detail::make_value_holder> - , detail::reference_existing_object_requires_a_pointer_return_type<T> + , detail::return_pointee_value_requires_a_pointer_return_type<T> >::type type; }; }; Modified: trunk/python-ogre/code_generators/ogre/return_pointee_value.hpp =================================================================== --- trunk/python-ogre/code_generators/ogre/return_pointee_value.hpp 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/code_generators/ogre/return_pointee_value.hpp 2008-11-18 07:52:54 UTC (rev 799) @@ -1,4 +1,4 @@ -// Copyright 2004 Roman Yakovenko. +// Copyright 2004-2008 Roman Yakovenko. // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) Modified: trunk/python-ogre/environment.py =================================================================== --- trunk/python-ogre/environment.py 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/environment.py 2008-11-18 07:52:54 UTC (rev 799) @@ -1047,7 +1047,7 @@ [0, "patch -s -N -i ../../python-ogre/patch/ogreode.patch -p0", baseDir], [0, "chmod +x autogen.sh", baseDir], [0, "./autogen.sh", baseDir], - [0, "./configure --prefix=%s" % PREFIX, baseDir], + [0, "./configure --without-samples --prefix=%s" % PREFIX, baseDir], [0, "make", baseDir], [0, "make install", baseDir], ] Modified: trunk/python-ogre/patch/ogreode.patch =================================================================== --- trunk/python-ogre/patch/ogreode.patch 2008-11-17 12:00:04 UTC (rev 798) +++ trunk/python-ogre/patch/ogreode.patch 2008-11-18 07:52:54 UTC (rev 799) @@ -1,245 +1,95 @@ -Index: include/OgreOdeEntityInformer.h -=================================================================== ---- include/OgreOdeEntityInformer.h (revision 2510) -+++ include/OgreOdeEntityInformer.h (working copy) -@@ -36,12 +36,12 @@ - const TriangleIndex* getIndices(); - unsigned int getIndexCount(); - -+ bool getBoneVertices(unsigned char bone,unsigned int &vertex_count, Ogre::Vector3* &vertices); - protected: - void addVertexData(const Ogre::VertexData *vertex_data, - const Ogre::VertexData *blended_data = 0, - const Ogre::Mesh::IndexMap *indexMap = 0); - void addIndexData(Ogre::IndexData *data, const unsigned int offset = 0); -- bool getBoneVertices(unsigned char bone,unsigned int &vertex_count, Ogre::Vector3* &vertices); - - Ogre::Entity* _entity; - Ogre::SceneNode* _node; -Index: src/OgreOdeTriangleMeshDataManager.cpp -=================================================================== ---- src/OgreOdeTriangleMeshDataManager.cpp (revision 2510) -+++ src/OgreOdeTriangleMeshDataManager.cpp (working copy) -@@ -1,106 +1,106 @@ --#include "OgreOdePrecompiledHeaders.h" -- --#include "OgreOdeTriangleMeshDataManager.h" -- -+#include "OgreOdePrecompiledHeaders.h" - -+#include "OgreOdeTriangleMeshDataManager.h" -+ -+ +Index: include/OgreOdeEntityInformer.h +=================================================================== +--- include/OgreOdeEntityInformer.h (revision 2510) ++++ include/OgreOdeEntityInformer.h (working copy) +@@ -36,12 +36,12 @@ + const TriangleIndex* getIndices(); + unsigned int getIndexCount(); + ++ bool getBoneVertices(unsigned char bone,unsigned int &vertex_count, Ogre::Vector3* &vertices); + protected: + void addVertexData(const Ogre::VertexData *vertex_data, + const Ogre::VertexData *blended_data = 0, + const Ogre::Mesh::IndexMap *indexMap = 0); + void addIndexData(Ogre::IndexData *data, const unsigned int offset = 0); +- bool getBoneVertices(unsigned char bone,unsigned int &vertex_count, Ogre::Vector3* &vertices); + + Ogre::Entity* _entity; + Ogre::SceneNode* _node; +Index: src/OgreOdeGeometry.cpp +=================================================================== +--- src/OgreOdeGeometry.cpp (revision 2510) ++++ src/OgreOdeGeometry.cpp (working copy) +@@ -924,7 +924,7 @@ + + _data = dGeomTriMeshDataCreate(); + +- dGeomTriMeshDataBuildSimple(_data,(const dReal*)_vertices, (int)vertex_count, _indices, (int) index_count); ++ dGeomTriMeshDataBuildSimple(_data,(const dReal*)_vertices, (int)vertex_count, /*(const int *)*/_indices, (int) index_count); + + _geom = dCreateTriMesh(getSpaceID(space),_data,0,0,0); + registerGeometry(); +Index: src/OgreOdeTriangleMeshDataManager.cpp +=================================================================== +--- src/OgreOdeTriangleMeshDataManager.cpp (revision 2510) ++++ src/OgreOdeTriangleMeshDataManager.cpp (working copy) +@@ -6,7 +6,7 @@ using namespace Ogre; --using namespace OgreOde; -- --template<> TriangleMeshDataManager *Ogre::Singleton<TriangleMeshDataManager>::ms_Singleton = 0; -- --namespace OgreOde --{ -- //----------------------------------------------------------------------- -- TriangleMeshDataManager::TriangleMeshDataManager() -- { -- } -- -- //----------------------------------------------------------------------- -- TriangleMeshDataManager::~TriangleMeshDataManager() -- { -- //mTriangleMeshDataMap.clear(); -- } -- -- //----------------------------------------------------------------------- -- TriangleMeshDataManager *TriangleMeshDataManager::getSingletonPtr () -- { -- return ms_Singleton; -- } -- -- //----------------------------------------------------------------------- -- TriangleMeshDataManager &TriangleMeshDataManager::getSingleton () -- { -- assert (ms_Singleton); -- return (*ms_Singleton); -- } -- -- -- //----------------------------------------------------------------------- -- void TriangleMeshDataManager::addTriangleMeshData(const String& name, TriangleMeshDataPtr shape, Vector3 scale) -- { -- -- mTriangleMeshDataMap[name][scale] = shape; -- -- // reduce count so when Ode::Geometry changes its dataPtr or is deleted we arn't -- // left with this one on a referance count of 1 -- unsigned int* count = shape.useCountPointer(); -- (*count)--; -- -- } -- -- -- //----------------------------------------------------------------------- -- void TriangleMeshDataManager::removeTriangleMeshData(const String& name, Vector3 scale) -- { -- -- TriangleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name); -- if(itr != mTriangleMeshDataMap.end()) -- { -- -- std::map<Ogre::Vector3, OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2; -- -- itr2 = itr->second.find(scale); -- -- if ( itr2 != itr->second.end() ) -- { -- //printf ("no TriangleMeshData for scale so erase it\n"); -- itr->second.erase(itr2); -- itr2->second.setNull(); -- } -- -- if (itr->second.size() == 0) -- { -- //printf ("have no TriangleMeshData for this mesh so erase it from map\n"); -- mTriangleMeshDataMap.erase(itr); -- } -- } -- -- } -- -- -- /** looks for mesh name then size or returns a NULL TriangleMeshDataPtr -- */ -- //----------------------------------------------------------------------- -- TriangleMeshDataPtr TriangleMeshDataManager::getTriangleMeshData(const String& name, Vector3 scale) -- { -- -- TriangleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name); -- if(itr != mTriangleMeshDataMap.end()) -- { -- std::map<Ogre::Vector3, OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2; -- -- itr2 = itr->second.find(scale); -- -- if ( itr2 != itr->second.end() ) -- { -- return itr2->second; -- } -- } -- -- //printf ("TriangleMeshDataManager::getTriangleMeshData not found\n"); -- -- return NULL; -- -- } -- --} -+using namespace OgreOde; -+ -+template<> OgreOde::TriangleMeshDataManager * Ogre::Singleton<OgreOde::TriangleMeshDataManager>::ms_Singleton = 0; -+ -+namespace OgreOde -+{ -+ //----------------------------------------------------------------------- -+ TriangleMeshDataManager::TriangleMeshDataManager() -+ { -+ } -+ -+ //----------------------------------------------------------------------- -+ TriangleMeshDataManager::~TriangleMeshDataManager() -+ { -+ //mTriangleMeshDataMap.clear(); -+ } -+ -+ //----------------------------------------------------------------------- -+ TriangleMeshDataManager *TriangleMeshDataManager::getSingletonPtr () -+ { -+ return ms_Singleton; -+ } -+ -+ //----------------------------------------------------------------------- -+ TriangleMeshDataManager &TriangleMeshDataManager::getSingleton () -+ { -+ assert (ms_Singleton); -+ return (*ms_Singleton); -+ } -+ -+ -+ //----------------------------------------------------------------------- -+ void TriangleMeshDataManager::addTriangleMeshData(const String& name, TriangleMeshDataPtr shape, Vector3 scale) -+ { -+ -+ mTriangleMeshDataMap[name][scale] = shape; -+ -+ // reduce count so when Ode::Geometry changes its dataPtr or is deleted we arn't -+ // left with this one on a referance count of 1 -+ unsigned int* count = shape.useCountPointer(); -+ (*count)--; -+ -+ } -+ -+ -+ //----------------------------------------------------------------------- -+ void TriangleMeshDataManager::removeTriangleMeshData(const String& name, Vector3 scale) -+ { -+ -+ TriangleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name); -+ if(itr != mTriangleMeshDataMap.end()) -+ { -+ -+ std::map<Ogre::Vector3, OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2; -+ -+ itr2 = itr->second.find(scale); -+ -+ if ( itr2 != itr->second.end() ) -+ { -+ //printf ("no TriangleMeshData for scale so erase it\n"); -+ itr->second.erase(itr2); -+ itr2->second.setNull(); -+ } -+ -+ if (itr->second.size() == 0) -+ { -+ //printf ("have no TriangleMeshData for this mesh so erase it from map\n"); -+ mTriangleMeshDataMap.erase(itr); -+ } -+ } -+ -+ } -+ -+ -+ /** looks for mesh name then size or returns a NULL TriangleMeshDataPtr -+ */ -+ //----------------------------------------------------------------------- -+ TriangleMeshDataPtr TriangleMeshDataManager::getTriangleMeshData(const String& name, Vector3 scale) -+ { -+ -+ TriangleMeshDataPtrMap::iterator itr = mTriangleMeshDataMap.find(name); -+ if(itr != mTriangleMeshDataMap.end()) -+ { -+ std::map<Ogre::Vector3, OgreOde::TriangleMeshDataPtr,OgreOde::TriangleMeshDataManager::vectorLess>::iterator itr2; -+ -+ itr2 = itr->second.find(scale); -+ -+ if ( itr2 != itr->second.end() ) -+ { -+ return itr2->second; -+ } -+ } -+ -+ //printf ("TriangleMeshDataManager::getTriangleMeshData not found\n"); -+ -+ return NULL; -+ -+ } -+ -+} -Index: prefab/src/OgreOdeRagdoll.cpp -=================================================================== ---- prefab/src/OgreOdeRagdoll.cpp (revision 2510) -+++ prefab/src/OgreOdeRagdoll.cpp (working copy) -@@ -10,6 +10,7 @@ + using namespace OgreOde; + +-template<> TriangleMeshDataManager *Ogre::Singleton<TriangleMeshDataManager>::ms_Singleton = 0; ++template<> OgreOde::TriangleMeshDataManager * Ogre::Singleton<OgreOde::TriangleMeshDataManager>::ms_Singleton = 0; + + namespace OgreOde + { +Index: prefab/src/OgreOdeRagdoll.cpp +=================================================================== +--- prefab/src/OgreOdeRagdoll.cpp (revision 2512) ++++ prefab/src/OgreOdeRagdoll.cpp (working copy) +@@ -10,6 +10,7 @@ #include "OgreOde_Prefab.h" #include "OgreOdeRagdoll.h" -+#include "OgreAlignedAllocator.h" ++#include "OgreAlignedAllocator.h" using namespace Ogre; using namespace OgreOde; +@@ -734,4 +735,4 @@ + void RagdollFactory::destroyInstance( MovableObject* obj) + { + delete obj; +-} +\ No newline at end of file ++} +Index: loader/include/OgreOdeDotLoader.h +=================================================================== +--- loader/include/OgreOdeDotLoader.h (revision 2510) ++++ loader/include/OgreOdeDotLoader.h (working copy) +@@ -15,8 +15,8 @@ + DotLoader(OgreOde::World * world = 0, OgreOde::Space * space = 0); + ~DotLoader(){}; + +- void setWorld(OgreOde::World * world) {_world = world;}; +- void setSpace(OgreOde::Space * space) {_space = space;}; ++ void setWorld(OgreOde::World * world);// {_world = world;}; ++ void setSpace(OgreOde::Space * space);// {_space = space;}; + + ObjectList *load(const Ogre::String &filename, const Ogre::StringVector &objects_names, const Ogre::StringVector &instance_names); + void save(const Ogre::String &filename, const Ogre::StringVector &objects_names, ObjectList *objects); +Index: loader/src/OgreOdeDotLoader.cpp +=================================================================== +--- loader/src/OgreOdeDotLoader.cpp (revision 2510) ++++ loader/src/OgreOdeDotLoader.cpp (working copy) +@@ -62,6 +62,12 @@ + { + + } ++ ++void DotLoader::setWorld(OgreOde::World * world) ++{_world = world;}; ++void DotLoader::setSpace(OgreOde::Space * space) ++{_space = space;}; ++ + //------------------------------------------------------------------------------------------------ + ObjectList *DotLoader::load(const String &filename, const StringVector &objects_names, const StringVector &instance_names) + { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |