Index: orxonox/branches/physics/src/Makefile.am
===================================================================
--- orxonox/branches/physics/src/Makefile.am	(revision 4180)
+++ orxonox/branches/physics/src/Makefile.am	(revision 4181)
@@ -90,4 +90,5 @@
 		 util/physics/physical_interaction_sym.cc \
 		 util/physics/physical_interaction_asym.cc \
+		 util/physics/physics_connection.cc \
 		 util/physics/fields/field.cc \
 		 util/physics/fields/gravity.cc \
@@ -163,4 +164,5 @@
 		 util/physics/physical_interaction_sym.h \
 		 util/physics/physical_interaction_asym.h \
+		 util/physics/physics_connection.h \
 		 util/physics/fields/field.h \
 		 util/physics/fields/gravity.h \
Index: orxonox/branches/physics/src/Makefile.in
===================================================================
--- orxonox/branches/physics/src/Makefile.in	(revision 4180)
+++ orxonox/branches/physics/src/Makefile.in	(revision 4181)
@@ -91,8 +91,8 @@
 	physical_interaction.$(OBJEXT) \
 	physical_interaction_sym.$(OBJEXT) \
-	physical_interaction_asym.$(OBJEXT) field.$(OBJEXT) \
-	gravity.$(OBJEXT) vector.$(OBJEXT) curve.$(OBJEXT) \
-	glmenu_imagescreen.$(OBJEXT) tinyxml.$(OBJEXT) \
-	tinystr.$(OBJEXT) tinyxmlerror.$(OBJEXT) \
+	physical_interaction_asym.$(OBJEXT) \
+	physics_connection.$(OBJEXT) field.$(OBJEXT) gravity.$(OBJEXT) \
+	vector.$(OBJEXT) curve.$(OBJEXT) glmenu_imagescreen.$(OBJEXT) \
+	tinyxml.$(OBJEXT) tinystr.$(OBJEXT) tinyxmlerror.$(OBJEXT) \
 	tinyxmlparser.$(OBJEXT) benchmark.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
@@ -140,4 +140,5 @@
 @AMDEP_TRUE@	./$(DEPDIR)/physical_interaction_asym.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/physical_interaction_sym.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/physics_connection.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/physics_engine.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/player.Po \
@@ -342,4 +343,5 @@
 		 util/physics/physical_interaction_sym.cc \
 		 util/physics/physical_interaction_asym.cc \
+		 util/physics/physics_connection.cc \
 		 util/physics/fields/field.cc \
 		 util/physics/fields/gravity.cc \
@@ -415,4 +417,5 @@
 		 util/physics/physical_interaction_sym.h \
 		 util/physics/physical_interaction_asym.h \
+		 util/physics/physics_connection.h \
 		 util/physics/fields/field.h \
 		 util/physics/fields/gravity.h \
@@ -581,4 +584,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physical_interaction_asym.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physical_interaction_sym.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physics_connection.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/physics_engine.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@
@@ -1517,4 +1521,20 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o physical_interaction_asym.obj `if test -f 'util/physics/physical_interaction_asym.cc'; then $(CYGPATH_W) 'util/physics/physical_interaction_asym.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/physical_interaction_asym.cc'; fi`
+
+physics_connection.o: util/physics/physics_connection.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT physics_connection.o -MD -MP -MF "$(DEPDIR)/physics_connection.Tpo" -c -o physics_connection.o `test -f 'util/physics/physics_connection.cc' || echo '$(srcdir)/'`util/physics/physics_connection.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/physics_connection.Tpo" "$(DEPDIR)/physics_connection.Po"; else rm -f "$(DEPDIR)/physics_connection.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/physics_connection.cc' object='physics_connection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/physics_connection.Po' tmpdepfile='$(DEPDIR)/physics_connection.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o physics_connection.o `test -f 'util/physics/physics_connection.cc' || echo '$(srcdir)/'`util/physics/physics_connection.cc
+
+physics_connection.obj: util/physics/physics_connection.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT physics_connection.obj -MD -MP -MF "$(DEPDIR)/physics_connection.Tpo" -c -o physics_connection.obj `if test -f 'util/physics/physics_connection.cc'; then $(CYGPATH_W) 'util/physics/physics_connection.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/physics_connection.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/physics_connection.Tpo" "$(DEPDIR)/physics_connection.Po"; else rm -f "$(DEPDIR)/physics_connection.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/physics_connection.cc' object='physics_connection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/physics_connection.Po' tmpdepfile='$(DEPDIR)/physics_connection.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o physics_connection.obj `if test -f 'util/physics/physics_connection.cc'; then $(CYGPATH_W) 'util/physics/physics_connection.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/physics_connection.cc'; fi`
 
 field.o: util/physics/fields/field.cc
Index: orxonox/branches/physics/src/util/physics/fields/field.cc
===================================================================
--- orxonox/branches/physics/src/util/physics/fields/field.cc	(revision 4180)
+++ orxonox/branches/physics/src/util/physics/fields/field.cc	(revision 4181)
@@ -28,4 +28,6 @@
 {
    this->setClassName ("Field");
+   this->setMagnitude(1);
+   this->setAttenuation(0);
 }
 
Index: orxonox/branches/physics/src/util/physics/physics_connection.cc
===================================================================
--- orxonox/branches/physics/src/util/physics/physics_connection.cc	(revision 4181)
+++ orxonox/branches/physics/src/util/physics/physics_connection.cc	(revision 4181)
@@ -0,0 +1,58 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "physics_connection.h"
+
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+PhysicsConnection::PhysicsConnection () 
+{
+   this->setClassName ("PhysicsConnection");
+   connection = NULL;
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+PhysicsConnection::~PhysicsConnection () 
+{
+  if (this->connection)
+    delete this->connection;
+}
+
+
+
+
+
+
+bool PhysicsConnection::addConnection(ParticleSystem* particleSystem, Field* field)
+{
+  if (!this->connection)
+    {
+      this->connection = new PhysConnection;
+      this->connection->type = PCON_ParticlesField;
+      this->connection->particleSystem = particleSystem;
+      this->connection->field = field;
+    }
+}
Index: orxonox/branches/physics/src/util/physics/physics_connection.h
===================================================================
--- orxonox/branches/physics/src/util/physics/physics_connection.h	(revision 4181)
+++ orxonox/branches/physics/src/util/physics/physics_connection.h	(revision 4181)
@@ -0,0 +1,52 @@
+/*! 
+    \file physics_connection.h
+    \brief Definition of The Physical Connection Class.
+*/
+
+#ifndef _PHYSICS_CONNECTION_H 
+#define _PHYSICS_CONNECTION_H
+
+#include "base_object.h"
+
+//! An enumerator for different ConnectionTypes
+typedef enum PCON_Type { PCON_IPhysIPhys = 0,
+			 PCON_IPhysField = 1,
+			 PCON_ParticlesField = 2 };
+
+
+// Forward Declaration
+class Field;
+class IPhysics;
+class ParticleSystem;
+
+
+typedef struct PhysConnection
+{
+  PCON_Type type;                    //!< What kind of connection this is.
+
+  IPhysics* subject;                 //!< The main Subject of this Connection.
+  IPhysics* partner2;                //!< The second partner of this Connection.
+
+  ParticleSystem* particleSystem;    //!< A ParticleSystem in this Connection
+  
+  Field* field;                      //!< The field to connect either subject of ParticleSystem to.
+};
+
+//! A class that Handles Physical Connection between subjects
+class PhysicsConnection : public BaseObject {
+
+ public:
+  PhysicsConnection();
+  virtual ~PhysicsConnection();
+
+  bool addConnection(IPhysics* partnerOne, IPhysics* partnerTwo);
+  bool addConnection(IPhysics* subject, Field* field);
+  bool addConnection(ParticleSystem* particleSystem, Field* field);
+
+  inline PhysConnection* getConnection(void) const {return this->connection;}
+
+ private:
+  PhysConnection* connection;        //!< The Physical Connection.
+};
+
+#endif /* _PHYSICS_CONNECTION_H */
