Index: /code/branches/physics/src/orxonox/objects/HelloBullet.cc
===================================================================
--- /code/branches/physics/src/orxonox/objects/HelloBullet.cc	(revision 2123)
+++ /code/branches/physics/src/orxonox/objects/HelloBullet.cc	(revision 2124)
@@ -40,5 +40,5 @@
 #include "core/ConfigValueIncludes.h"
 #include "core/XMLPort.h"
-#include "GraphicsEngine.h"
+#include "objects/Scene.h"
 
 #include "util/Sleep.h"
@@ -49,5 +49,6 @@
     CreateFactory(HelloBullet);
     
-    HelloBullet::HelloBullet()
+    HelloBullet::HelloBullet(BaseObject* creator)
+        : BaseObject(creator)
     {
  	   RegisterObject(HelloBullet);
@@ -94,5 +95,5 @@
 
 //load floor mash
-        Ogre::SceneManager* sceneMgr = GraphicsEngine::getInstance().getLevelSceneManager();
+        Ogre::SceneManager* sceneMgr = creator->getScene()->getSceneManager();
 
         int i = 0;
Index: /code/branches/physics/src/orxonox/objects/HelloBullet.h
===================================================================
--- /code/branches/physics/src/orxonox/objects/HelloBullet.h	(revision 2123)
+++ /code/branches/physics/src/orxonox/objects/HelloBullet.h	(revision 2124)
@@ -42,5 +42,5 @@
     {
     public:
-        HelloBullet();
+        HelloBullet(BaseObject* creator);
         virtual ~HelloBullet();
         void setConfigValues();
Index: /code/branches/physics/src/orxonox/objects/PhysicsTest.cc
===================================================================
--- /code/branches/physics/src/orxonox/objects/PhysicsTest.cc	(revision 2123)
+++ /code/branches/physics/src/orxonox/objects/PhysicsTest.cc	(revision 2124)
@@ -40,4 +40,5 @@
 #include "core/XMLPort.h"
 #include "GraphicsEngine.h"
+#include "Scene.h"
 
 namespace orxonox
@@ -45,6 +46,7 @@
     CreateFactory(PhysicsTest);
 
-    PhysicsTest::PhysicsTest()
-        : odeWorld_(0)
+    PhysicsTest::PhysicsTest(BaseObject* creator)
+        : BaseObject(creator)
+        , odeWorld_(0)
         , odeSpace_(0)
         , odeStepper_(0)
@@ -84,5 +86,5 @@
         SUPER(PhysicsTest, XMLPort, xmlelement, mode);
 
-        Ogre::SceneManager* sceneMgr = GraphicsEngine::getInstance().getLevelSceneManager();
+        Ogre::SceneManager* sceneMgr = this->getScene()->getSceneManager();
 
         // set up OgreOde
@@ -103,16 +105,15 @@
         const Ogre::Real time_scale = Ogre::Real(1.7);
         const Ogre::Real max_frame_time = Ogre::Real(1.0 / 4);
-        odeStepper_ = new OgreOde::StepHandler(odeWorld_, OgreOde::StepHandler::QuickStep,_time_step,
+        odeStepper_ = new OgreOde::StepHandler(odeWorld_, OgreOde::StepHandler::QuickStep, _time_step,
             max_frame_time, time_scale);
 
 
-        // Create a hanging crate
+        // create a plane in x-z dimensions.
 
         odeGround_ = new OgreOde::InfinitePlaneGeometry(Ogre::Plane(Ogre::Vector3(0,1,0),0),
             odeWorld_, odeWorld_->getDefaultSpace());
 
-	CollidingObject* collidingObject = new CollidingObject();
-       
-	odeGround_->setUserObject(static_cast<CollisionTestedObject*>(collidingObject));
+        CollidingObject* collidingObject = new CollidingObject();
+        odeGround_->setUserObject(static_cast<CollisionTestedObject*>(collidingObject));
 
         // Use a load of meshes to represent the floor
@@ -139,5 +140,5 @@
 
 
-        // create a plane in x-z dimensions.
+        // create a hanging crate
 
         entity_ = sceneMgr->createEntity("crate","crate.mesh");
@@ -147,5 +148,4 @@
         entity_->setNormaliseNormals(true);
         entity_->setCastShadows(true);
-
 
         odeBody_ = new OgreOde::Body(odeWorld_);
@@ -178,49 +178,49 @@
     }
 
-    bool PhysicsTest::collision(OgreOde::Contact *Contact)
-    {
-    	// Check for collisions between things that are connected and ignore them
-       	OgreOde::Geometry * const g1 = Contact->getFirstGeometry();
-       	OgreOde::Geometry * const g2 = Contact->getSecondGeometry();
-
-       	if (g1 && g2)
-       	{
-       		const OgreOde::Body * const b1 = g2->getBody();
-       		const OgreOde::Body * const  b2 = g1->getBody();
-       		if (b1 && b2 && OgreOde::Joint::areConnected(b1, b2)) 
-                  return false; 
-       	}
-       
-       	//set contact parameters:
-       	Contact->setBouncyness(1.0);
-       	Contact->setCoulombFriction(OgreOde::Utility::Infinity);
-       	Contact->setForceDependentSlip(1.0);
-       	Contact->setAdditionalFDS(1.0);
-       
-       	/*we have 2 collidable objects from our object system, if one of the Collide function returns false, e return false in this method, too, else we return true, so ode computes a normal collision.
-        true means ode will treat this like a normal collison => rigid body behavior
-        false means ode will not treat this collision at all => objects ignore each other*/
-        	
-        bool Return = true;
-        	
+    bool PhysicsTest::collision(OgreOde::Contact* contact)
+    {
+        // Check for collisions between things that are connected and ignore them
+        OgreOde::Geometry * const g1 = contact->getFirstGeometry();
+        OgreOde::Geometry * const g2 = contact->getSecondGeometry();
+
+        if (g1 && g2)
+        {
+            const OgreOde::Body * const b1 = g2->getBody();
+            const OgreOde::Body * const b2 = g1->getBody();
+            if (b1 && b2 && OgreOde::Joint::areConnected(b1, b2)) 
+                return false; 
+        }
+
+        //set contact parameters:
+        contact->setBouncyness(1.0);
+        contact->setCoulombFriction(OgreOde::Utility::Infinity);
+        contact->setForceDependentSlip(1.0);
+        contact->setAdditionalFDS(1.0);
+
+        // we have 2 collidable objects from our object system, if one of the Collide function returns false, e return false in this method, too, else we return true, so ode computes a normal collision.
+        // true means ode will treat this like a normal collison => rigid body behavior
+        // false means ode will not treat this collision at all => objects ignore each other
+
+        bool res = true;
+
         if (g1->getUserObject())
-        	if (!static_cast<CollisionTestedObject*>(g1->getUserObject())->Collide(true, Contact))
-        		Return = false;
-        
+            if (!static_cast<CollisionTestedObject*>(g1->getUserObject())->collide(true, contact))
+                res = false;
+
         if (g2->getUserObject())
-        	if (!static_cast<CollisionTestedObject*>(g2->getUserObject())->Collide(false, Contact))
-        		Return = false;
-        
-        return Return;
-    }
-
-        bool CollidingObject::Collide(bool MineIsFirst, OgreOde::Contact *Contact)
-        {
-        	Contact->setForceDependentSlip(Contact->getForceDependentSlip() * ForceDependentSlip);
-        	Contact->setAdditionalFDS(Contact->getForceDependentSlip2() * ForceDependentSlip);
-        	Contact->setCoulombFriction(Contact->getCoulombFrictionMu() * Friction);
-        	Contact->setBouncyness(Contact->getBouncyness() * Bouncyness, Contact->getBouncynessVelocity() * BounceVelocity);
-        	return true;
-        }
+            if (!static_cast<CollisionTestedObject*>(g2->getUserObject())->collide(false, contact))
+                res = false;
+
+        return res;
+    }
+
+    bool CollidingObject::Collide(bool MineIsFirst, OgreOde::Contact* contact)
+    {
+        contact->setForceDependentSlip(contact->getForceDependentSlip() * ForceDependentSlip);
+        contact->setAdditionalFDS(contact->getForceDependentSlip2() * ForceDependentSlip);
+        contact->setCoulombFriction(contact->getCoulombFrictionMu() * Friction);
+        contact->setBouncyness(contact->getBouncyness() * Bouncyness, contact->getBouncynessVelocity() * BounceVelocity);
+        return true;
+    }
 
 }
Index: /code/branches/physics/src/orxonox/objects/PhysicsTest.h
===================================================================
--- /code/branches/physics/src/orxonox/objects/PhysicsTest.h	(revision 2123)
+++ /code/branches/physics/src/orxonox/objects/PhysicsTest.h	(revision 2124)
@@ -42,5 +42,5 @@
     {
     public:
-        PhysicsTest();
+        PhysicsTest(BaseObject* creator);
         virtual ~PhysicsTest();
         void setConfigValues();
@@ -66,44 +66,45 @@
 
 
-   class _OrxonoxExport CollisionTestedObject
-   {
-        public:
-        	CollisionTestedObject(void);
-        	virtual ~CollisionTestedObject(void);
-        	virtual bool Collide(bool MineIsFirst, OgreOde::Contact *Contact) = 0;
-   };
+    class _OrxonoxExport CollisionTestedObject
+    {
+    public:
+        CollisionTestedObject(void);
+        virtual ~CollisionTestedObject(void);
+        virtual bool Collide(bool bMineFirst, OgreOde::Contact* contact) = 0;
+    };
 
-   class _OrxonoxExport CollidingObject : public virtual CollisionTestedObject
-   {
-        protected:
-               float Friction;
-        	float Bouncyness;
-        	float BounceVelocity;
-        	float ForceDependentSlip;
-        
-        public:
-        	CollidingObject(void);
-        	virtual ~CollidingObject(void);
-        
-        //	bool virtual WriteToIni(IniFile& Ini)	const;
-        //	bool virtual LoadFromIni(const std::basic_string<wchar_t>& ObjectID, IniFile& Ini);
-        
-        	float GetFriction(void)			const	{return Friction;}
-        	float GetBouncyness(void)		const	{return Bouncyness;}
-        	float GetBounceVelocity(void)		const	{return BounceVelocity;}
-        	float GetFDS(void)			const	{return ForceDependentSlip;}
-        
-        	virtual bool Collide(bool MineIsFirst, OgreOde::Contact *Contact);
-        
-        private:
-        	static const wchar_t* KEY_FRICTION;
-        	static const float DEF_FRICTION;
-        	static const wchar_t* KEY_BOUNCYNESS;
-        	static const float DEF_BOUNCYNESS;
-        	static const wchar_t* KEY_FDS;
-        	static const float DEF_FDS;
-        	static const wchar_t* KEY_BOUNCE_VELO;
-        	static const float DEF_BOUNCE_VELO;
-   };
+    class _OrxonoxExport CollidingObject : virtual public CollisionTestedObject
+    {
+    protected:
+        float friction_;
+        float bouncyness_;
+        float bounceVelocity_;
+        float forceDependentSlip_;
+
+    public:
+        CollidingObject(void);
+        virtual ~CollidingObject(void);
+
+        //virtual bool writeToIni(IniFile& ini)	const;
+        //virtual bool loadFromIni(const std::basic_string<wchar_t>& objectID, IniFile& ini);
+
+        float getFriction(void)       const {return friction_;}
+        float getBouncyness(void)     const {return bouncyness_;}
+        float getBounceVelocity(void) const {return bounceVelocity_;}
+        float getFDS(void)            const {return forceDependentSlip_;}
+
+        virtual bool collide(bool bMineFirst, OgreOde::Contact *contact);
+
+    private:
+        //static const wchar_t* KEY_FRICTION;
+        //static const float DEF_FRICTION;
+        //static const wchar_t* KEY_BOUNCYNESS;
+        //static const float DEF_BOUNCYNESS;
+        //static const wchar_t* KEY_FDS;
+        //static const float DEF_FDS;
+        //static const wchar_t* KEY_BOUNCE_VELO;
+        //static const float DEF_BOUNCE_VELO;
+
+    };
 
 }
Index: /code/branches/physics/visual_studio/vc8/base.vsprops
===================================================================
--- /code/branches/physics/visual_studio/vc8/base.vsprops	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/base.vsprops	(revision 2124)
@@ -8,5 +8,5 @@
 	<Tool
 		Name="VCCLCompilerTool"
-		AdditionalIncludeDirectories="&quot;$(RootDir)src&quot;;&quot;$(RootDir)src\ceguilua-0.6.1&quot;;&quot;$(LibDir)ogre-1.4.9\include&quot;;&quot;$(LibDir)boost-1.35.0\include&quot;;&quot;$(LibDir)cegui-0.6.1\include&quot;;&quot;$(LibDir)enet-1.2\include&quot;;&quot;$(LibDir)libogg-1.1.3\include&quot;;&quot;$(LibDir)libvorbis-1.2.0\include&quot;;&quot;$(LibDir)openal-1.1\include&quot;;&quot;$(LibDir)freealut-1.1.0\include&quot;;&quot;$(LibDir)tcl-8.5.2\include&quot;;&quot;$(LibDir)zlib-1.2.3\include&quot;;&quot;$(LibDir)ode-0.10.1\include&quot;"
+		AdditionalIncludeDirectories="&quot;$(RootDir)src&quot;;&quot;$(RootDir)src\ceguilua-0.6.1&quot;;&quot;$(RootDir)src\ogrebullet\Dynamics&quot;;&quot;$(RootDir)src\ogrebullet\Collisions&quot;;&quot;$(RootDir)src\bullet&quot;;&quot;$(LibDir)ogre-1.4.9\include&quot;;&quot;$(LibDir)boost-1.35.0\include&quot;;&quot;$(LibDir)cegui-0.6.1\include&quot;;&quot;$(LibDir)enet-1.2\include&quot;;&quot;$(LibDir)libogg-1.1.3\include&quot;;&quot;$(LibDir)libvorbis-1.2.0\include&quot;;&quot;$(LibDir)openal-1.1\include&quot;;&quot;$(LibDir)freealut-1.1.0\include&quot;;&quot;$(LibDir)tcl-8.5.2\include&quot;;&quot;$(LibDir)zlib-1.2.3\include&quot;;&quot;$(LibDir)ode-0.10.1\include&quot;"
 		PreprocessorDefinitions="WIN32;__WIN32__;_WIN32;_WINDOWS;BOOST_ALL_DYN_LINK;OIS_DYNAMIC_LIB;ZLIB_WINAPI"
 		WarningLevel="3"
Index: /code/branches/physics/visual_studio/vc8/bullet.vsprops
===================================================================
--- /code/branches/physics/visual_studio/vc8/bullet.vsprops	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/bullet.vsprops	(revision 2124)
@@ -8,5 +8,5 @@
 	<Tool
 		Name="VCCLCompilerTool"
-		AdditionalIncludeDirectories="$(RootDir)src\bullet;$(RootDir)src\bullet\BulletCollision;$(RootDir)src\bullet\BulletDynamics;$(RootDir)src\bullet\BulletSoftBody;$(RootDir)src\bullet\LinearMath"
+		AdditionalIncludeDirectories=""
 		TreatWChar_tAsBuiltInType="false"
 	/>
Index: /code/branches/physics/visual_studio/vc8/ogrebullet_collisions.vsprops
===================================================================
--- /code/branches/physics/visual_studio/vc8/ogrebullet_collisions.vsprops	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/ogrebullet_collisions.vsprops	(revision 2124)
@@ -9,5 +9,5 @@
 		Name="VCCLCompilerTool"
 		AdditionalOptions="/Zm200"
-		AdditionalIncludeDirectories="$(RootDir)src\bullet;$(RootDir)src\ogrebullet\Collisions"
+		AdditionalIncludeDirectories=""
 		PreprocessorDefinitions="_PRECOMP"
 		UsePrecompiledHeader="2"
Index: /code/branches/physics/visual_studio/vc8/ogrebullet_dynamics.vsprops
===================================================================
--- /code/branches/physics/visual_studio/vc8/ogrebullet_dynamics.vsprops	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/ogrebullet_dynamics.vsprops	(revision 2124)
@@ -9,5 +9,5 @@
 		Name="VCCLCompilerTool"
 		AdditionalOptions="/Zm200"
-		AdditionalIncludeDirectories="$(RootDir)src\bullet;$(RootDir)src\ogrebullet\Collisions;$(RootDir)src\ogrebullet\Dynamics"
+		AdditionalIncludeDirectories=""
 		PreprocessorDefinitions="_PRECOMP"
 		UsePrecompiledHeader="2"
Index: /code/branches/physics/visual_studio/vc8/orxonox.vcproj
===================================================================
--- /code/branches/physics/visual_studio/vc8/orxonox.vcproj	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/orxonox.vcproj	(revision 2124)
@@ -206,4 +206,28 @@
 				</File>
 				<File
+					RelativePath="..\..\src\orxonox\objects\HelloBullet.cc"
+					>
+				</File>
+				<File
+					RelativePath="..\..\src\orxonox\objects\PhysicsTest.cc"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="..\..\src\orxonox\objects\Radar.cc"
 					>
@@ -846,4 +870,12 @@
 				</File>
 				<File
+					RelativePath="..\..\src\orxonox\objects\HelloBullet.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\src\orxonox\objects\PhysicsTest.h"
+					>
+				</File>
+				<File
 					RelativePath="..\..\src\orxonox\objects\Radar.h"
 					>
Index: /code/branches/physics/visual_studio/vc8/orxonox_vc8.sln
===================================================================
--- /code/branches/physics/visual_studio/vc8/orxonox_vc8.sln	(revision 2123)
+++ /code/branches/physics/visual_studio/vc8/orxonox_vc8.sln	(revision 2124)
@@ -8,12 +8,9 @@
 	EndProjectSection
 	ProjectSection(ProjectDependencies) = postProject
-		{4733BD1A-E04C-458D-8BFB-5010250EA497} = {4733BD1A-E04C-458D-8BFB-5010250EA497}
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68} = {35575B59-E1AE-40E8-89C4-2862B5B09B68}
-		{40511677-D792-42A1-AD87-DEE31D887F67} = {40511677-D792-42A1-AD87-DEE31D887F67}
 		{63B3E57A-4382-42F3-85EC-E869CFCCA88F} = {63B3E57A-4382-42F3-85EC-E869CFCCA88F}
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
 		{F101C2F0-1CB9-4A57-827B-6C399A99B28F} = {F101C2F0-1CB9-4A57-827B-6C399A99B28F}
 		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
-		{77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD} = {77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD}
 		{09E86264-CA02-4A60-98EA-61BB3F460160} = {09E86264-CA02-4A60-98EA-61BB3F460160}
 		{C8659D22-3CB7-41C9-A1BC-B40DB70A31A5} = {C8659D22-3CB7-41C9-A1BC-B40DB70A31A5}
@@ -21,5 +18,4 @@
 		{BA753941-F455-43A2-925C-7F3E02F6A995} = {BA753941-F455-43A2-925C-7F3E02F6A995}
 		{4BBBB49F-3203-4BB4-AAE3-48BCA96FCB4F} = {4BBBB49F-3203-4BB4-AAE3-48BCA96FCB4F}
-		{BBA88DC2-CD78-4C00-814B-183899090F3E} = {BBA88DC2-CD78-4C00-814B-183899090F3E}
 		{71FC0211-5EB5-4637-BE8A-A48EC3CC27D0} = {71FC0211-5EB5-4637-BE8A-A48EC3CC27D0}
 		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626} = {35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}
@@ -230,7 +226,5 @@
 		{271715F3-5B90-4110-A552-70C788084A86}.Release|Win32.Build.0 = Release|Win32
 		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Debug|Win32.Build.0 = Debug|Win32
 		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Release|Win32.ActiveCfg = Release|Win32
-		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Release|Win32.Build.0 = Release|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.ActiveCfg = Debug|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.Build.0 = Debug|Win32
@@ -258,15 +252,9 @@
 		{8F5B7ED0-D380-4B4F-A744-3A568718176C}.Release|Win32.Build.0 = Release|Win32
 		{BBA88DC2-CD78-4C00-814B-183899090F3E}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BBA88DC2-CD78-4C00-814B-183899090F3E}.Debug|Win32.Build.0 = Debug|Win32
 		{BBA88DC2-CD78-4C00-814B-183899090F3E}.Release|Win32.ActiveCfg = Release|Win32
-		{BBA88DC2-CD78-4C00-814B-183899090F3E}.Release|Win32.Build.0 = Release|Win32
 		{77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD}.Debug|Win32.ActiveCfg = Debug|Win32
-		{77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD}.Debug|Win32.Build.0 = Debug|Win32
 		{77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD}.Release|Win32.ActiveCfg = Release|Win32
-		{77D52DF7-23DD-4739-A4F4-D9BD6C1EA9AD}.Release|Win32.Build.0 = Release|Win32
 		{40511677-D792-42A1-AD87-DEE31D887F67}.Debug|Win32.ActiveCfg = Debug|Win32
-		{40511677-D792-42A1-AD87-DEE31D887F67}.Debug|Win32.Build.0 = Debug|Win32
 		{40511677-D792-42A1-AD87-DEE31D887F67}.Release|Win32.ActiveCfg = Release|Win32
-		{40511677-D792-42A1-AD87-DEE31D887F67}.Release|Win32.Build.0 = Release|Win32
 		{BA753941-F455-43A2-925C-7F3E02F6A995}.Debug|Win32.ActiveCfg = Debug|Win32
 		{BA753941-F455-43A2-925C-7F3E02F6A995}.Debug|Win32.Build.0 = Debug|Win32
