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();
}
|