Thread: [Python-ogre-commit] SF.net SVN: python-ogre:[798] trunk/python-ogre/patch/ogreode.patch
Brought to you by:
andy_miller,
roman_yakovenko
From: <and...@us...> - 2008-11-17 12:00:07
|
Revision: 798 http://python-ogre.svn.sourceforge.net/python-ogre/?rev=798&view=rev Author: andy_miller Date: 2008-11-17 12:00:04 +0000 (Mon, 17 Nov 2008) Log Message: ----------- Patch update Modified Paths: -------------- trunk/python-ogre/patch/ogreode.patch Modified: trunk/python-ogre/patch/ogreode.patch =================================================================== --- trunk/python-ogre/patch/ogreode.patch 2008-11-17 11:44:30 UTC (rev 797) +++ trunk/python-ogre/patch/ogreode.patch 2008-11-17 12:00:04 UTC (rev 798) @@ -1,126 +1,245 @@ -Index: include/OgreOdePreReqs.h +Index: include/OgreOdeEntityInformer.h =================================================================== ---- include/OgreOdePreReqs.h (revision 2492) -+++ include/OgreOdePreReqs.h (working copy) -@@ -2,9 +2,9 @@ - #define _OGREODEPREREQS_H_ +--- include/OgreOdeEntityInformer.h (revision 2510) ++++ include/OgreOdeEntityInformer.h (working copy) +@@ -36,12 +36,12 @@ + const TriangleIndex* getIndices(); + unsigned int getIndexCount(); - #include "Ogre.h" --#include "OgreNoMemoryMacros.h" -+//#include "OgreNoMemoryMacros.h" - #include "ode/ode.h" --#include "OgreMemoryMacros.h" -+//#include "OgreMemoryMacros.h" ++ 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); - - namespace OgreOde -Index: src/OgreOdeGeometry.cpp + Ogre::Entity* _entity; + Ogre::SceneNode* _node; +Index: src/OgreOdeTriangleMeshDataManager.cpp =================================================================== ---- src/OgreOdeGeometry.cpp (revision 2492) -+++ src/OgreOdeGeometry.cpp (working copy) -@@ -900,7 +900,7 @@ +--- src/OgreOdeTriangleMeshDataManager.cpp (revision 2510) ++++ src/OgreOdeTriangleMeshDataManager.cpp (working copy) +@@ -1,106 +1,106 @@ +-#include "OgreOdePrecompiledHeaders.h" +- +-#include "OgreOdeTriangleMeshDataManager.h" +- ++#include "OgreOdePrecompiledHeaders.h" - _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/OgreOdeEntityInformer.cpp ++#include "OgreOdeTriangleMeshDataManager.h" ++ ++ + 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 =================================================================== ---- src/OgreOdeEntityInformer.cpp (revision 2492) -+++ src/OgreOdeEntityInformer.cpp (working copy) -@@ -361,8 +361,8 @@ - SphereGeometry* geom = new SphereGeometry(rad, world, space); - geom->setBody(body); +--- prefab/src/OgreOdeRagdoll.cpp (revision 2510) ++++ prefab/src/OgreOdeRagdoll.cpp (working copy) +@@ -10,6 +10,7 @@ -- body->setPosition(_node->getWorldPosition()); -- body->setOrientation(_node->getWorldOrientation()); -+ body->setPosition(_node->_getDerivedPosition()); -+ body->setOrientation(_node->_getDerivedOrientation()); - - _node->attachObject(body); - -@@ -382,8 +382,8 @@ - BoxGeometry* geom = new BoxGeometry(sz, world, space); - geom->setBody(body); - -- body->setPosition(_node->getWorldPosition()); -- body->setOrientation(_node->getWorldOrientation()); -+ body->setPosition(_node->_getDerivedPosition()); -+ body->setOrientation(_node->_getDerivedOrientation()); - - _node->attachObject(body); - -@@ -402,8 +402,8 @@ - { - BoxGeometry* geom = new BoxGeometry(getSize(), world, space); - -- geom->setPosition(_node->getWorldPosition()); -- geom->setOrientation(_node->getWorldOrientation()); -+ geom->setPosition(_node->_getDerivedPosition()); -+ geom->setOrientation(_node->_getDerivedOrientation()); - - return geom; - } -Index: src/OgreOdeWorld.cpp -=================================================================== ---- src/OgreOdeWorld.cpp (revision 2492) -+++ src/OgreOdeWorld.cpp (working copy) -@@ -28,6 +28,7 @@ - _show_debug_contact (false), - _manager (manager) - { -+ dInitODE(); - _world = dWorldCreate(); - _contacts = dJointGroupCreate(0); - -Index: loader/include/OgreOde_LoaderPreReqs.h -=================================================================== ---- loader/include/OgreOde_LoaderPreReqs.h (revision 2492) -+++ loader/include/OgreOde_LoaderPreReqs.h (working copy) -@@ -3,9 +3,9 @@ - - - #include "Ogre.h" --#include "OgreNoMemoryMacros.h" -+//#include "OgreNoMemoryMacros.h" - #include "ode/ode.h" --#include "OgreMemoryMacros.h" -+//#include "OgreMemoryMacros.h" - #include "OgreOde_Core.h" #include "OgreOde_Prefab.h" + #include "OgreOdeRagdoll.h" ++#include "OgreAlignedAllocator.h" -Index: loader/include/OgreOdeDotLoader.h -=================================================================== ---- loader/include/OgreOdeDotLoader.h (revision 2492) -+++ 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 2492) -+++ 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) - { + using namespace Ogre; + using namespace OgreOde; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |