00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "collisionhandler.h"
00023 #include "world.h"
00024 #include "space.h"
00025 #include "collider.h"
00026 #include <zeitgeist/logserver/logserver.h>
00027 #include <oxygen/sceneserver/scene.h>
00028
00029 using namespace oxygen;
00030 using namespace boost;
00031
00032 void
00033 CollisionHandler::OnLink()
00034 {
00035
00036 shared_ptr<Scene> scene = GetScene();
00037
00038 mWorld = shared_static_cast<World>(scene->GetChildOfClass("World"));
00039 if (mWorld.get() == 0)
00040 {
00041 GetLog()->Debug()
00042 << "(CollisionHandler) found no World node\n";
00043 }
00044
00045 mSpace = shared_static_cast<Space>(scene->GetChildOfClass("Space"));
00046 if (mSpace.get() == 0)
00047 {
00048 GetLog()->Debug()
00049 << "(CollisionHandler) found no Space node\n";
00050 }
00051
00052 mCollider = shared_static_cast<Collider>(make_shared(GetParent()));
00053 if (mCollider.get() == 0)
00054 {
00055 GetLog()->Debug()
00056 << "(CollisionHandler) found no parent Collider node\n";
00057 }
00058 }
00059
00060 void
00061 CollisionHandler::OnUnlink()
00062 {
00063 mCollider.reset();
00064 mWorld.reset();
00065 mSpace.reset();
00066 }
00067