From: Markus R. <rol...@us...> - 2007-02-16 15:43:41
|
Update of /cvsroot/simspark/simspark/spark/oxygen/physicsserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv25267/physicsserver Modified Files: Tag: WIN32 bodycontroller.cpp collisionhandler.cpp collisionhandler.h Log Message: - cleanup - use CachedPath objects to cache references Index: collisionhandler.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/collisionhandler.cpp,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** collisionhandler.cpp 5 Dec 2005 21:16:49 -0000 1.1 --- collisionhandler.cpp 16 Feb 2007 15:42:51 -0000 1.1.2.1 *************** *** 33,39 **** --- 33,59 ---- CollisionHandler::OnLink() { + UpdateCached(); + } + + void + CollisionHandler::ResetCache() + { + mCollider.reset(); + mWorld.reset(); + mSpace.reset(); + } + + void + CollisionHandler::UpdateCached() + { // setup the scene, world, space and collider references shared_ptr<Scene> scene = GetScene(); + ResetCache(); + if (scene.get() == 0) + { + return; + } + mWorld = shared_static_cast<World>(scene->GetChildOfClass("World")); if (mWorld.get() == 0) *************** *** 61,67 **** CollisionHandler::OnUnlink() { ! mCollider.reset(); ! mWorld.reset(); ! mSpace.reset(); } --- 81,86 ---- CollisionHandler::OnUnlink() { ! BaseNode::OnUnlink(); ! ResetCache(); } Index: collisionhandler.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/collisionhandler.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** collisionhandler.h 13 Feb 2007 19:52:34 -0000 1.1.2.1 --- collisionhandler.h 16 Feb 2007 15:42:51 -0000 1.1.2.2 *************** *** 50,53 **** --- 50,56 ---- virtual ~CollisionHandler() {}; + /** update variables from a script */ + virtual void UpdateCached(); + /** HandleCollision is called from the Collider to which this CollisionHandler is registered to. Derived classes implement *************** *** 100,103 **** --- 103,108 ---- virtual void OnUnlink(); + void ResetCache(); + // // Members Index: bodycontroller.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/oxygen/physicsserver/bodycontroller.cpp,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** bodycontroller.cpp 15 Feb 2007 21:00:18 -0000 1.1.2.1 --- bodycontroller.cpp 16 Feb 2007 15:42:50 -0000 1.1.2.2 *************** *** 35,38 **** --- 35,39 ---- void BodyController::OnUnlink() { + BaseNode::OnUnlink(); mBody.reset(); } |