Index: /orxonox/branches/physics/src/Makefile.am
===================================================================
--- /orxonox/branches/physics/src/Makefile.am	(revision 4179)
+++ /orxonox/branches/physics/src/Makefile.am	(revision 4180)
@@ -23,4 +23,5 @@
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/physics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/physics/fields
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
 
@@ -89,5 +90,6 @@
 		 util/physics/physical_interaction_sym.cc \
 		 util/physics/physical_interaction_asym.cc \
-		 util/physics/field.cc \
+		 util/physics/fields/field.cc \
+		 util/physics/fields/gravity.cc \
 		 lib/math/vector.cc \
 		 lib/math/curve.cc \
@@ -161,5 +163,6 @@
 		 util/physics/physical_interaction_sym.h \
 		 util/physics/physical_interaction_asym.h \
-		 util/physics/field.h \
+		 util/physics/fields/field.h \
+		 util/physics/fields/gravity.h \
 		 lib/util/ini_parser.h \
 		 lib/math/vector.h \
Index: /orxonox/branches/physics/src/Makefile.in
===================================================================
--- /orxonox/branches/physics/src/Makefile.in	(revision 4179)
+++ /orxonox/branches/physics/src/Makefile.in	(revision 4180)
@@ -92,6 +92,7 @@
 	physical_interaction_sym.$(OBJEXT) \
 	physical_interaction_asym.$(OBJEXT) field.$(OBJEXT) \
-	vector.$(OBJEXT) curve.$(OBJEXT) glmenu_imagescreen.$(OBJEXT) \
-	tinyxml.$(OBJEXT) tinystr.$(OBJEXT) tinyxmlerror.$(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)
@@ -115,4 +116,5 @@
 @AMDEP_TRUE@	./$(DEPDIR)/glmenu_imagescreen.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/graphics_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/gravity.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/helper_parent.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/i_physics.Po ./$(DEPDIR)/ini_parser.Po \
@@ -282,5 +284,5 @@
 target_vendor = @target_vendor@
 MAINSRCDIR = .
-AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/physics -I$(MAINSRCDIR)/subprojects
+AM_CXXFLAGS = -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/graphics -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/graphics/particles -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/gui/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai -I$(MAINSRCDIR)/util -I$(MAINSRCDIR)/util/animation -I$(MAINSRCDIR)/util/common -I$(MAINSRCDIR)/util/physics -I$(MAINSRCDIR)/util/physics/fields -I$(MAINSRCDIR)/subprojects
 noinst_LIBRARIES = libORXgui.a
 orxonox_DEPENDENCIES = libORXgui.a
@@ -340,5 +342,6 @@
 		 util/physics/physical_interaction_sym.cc \
 		 util/physics/physical_interaction_asym.cc \
-		 util/physics/field.cc \
+		 util/physics/fields/field.cc \
+		 util/physics/fields/gravity.cc \
 		 lib/math/vector.cc \
 		 lib/math/curve.cc \
@@ -412,5 +415,6 @@
 		 util/physics/physical_interaction_sym.h \
 		 util/physics/physical_interaction_asym.h \
-		 util/physics/field.h \
+		 util/physics/fields/field.h \
+		 util/physics/fields/gravity.h \
 		 lib/util/ini_parser.h \
 		 lib/math/vector.h \
@@ -548,4 +552,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmenu_imagescreen.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gravity.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper_parent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i_physics.Po@am__quote@
@@ -1513,19 +1518,35 @@
 @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`
 
-field.o: util/physics/field.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT field.o -MD -MP -MF "$(DEPDIR)/field.Tpo" -c -o field.o `test -f 'util/physics/field.cc' || echo '$(srcdir)/'`util/physics/field.cc; \
+field.o: util/physics/fields/field.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT field.o -MD -MP -MF "$(DEPDIR)/field.Tpo" -c -o field.o `test -f 'util/physics/fields/field.cc' || echo '$(srcdir)/'`util/physics/fields/field.cc; \
 @am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/field.Tpo" "$(DEPDIR)/field.Po"; else rm -f "$(DEPDIR)/field.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/field.cc' object='field.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/fields/field.cc' object='field.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/field.Po' tmpdepfile='$(DEPDIR)/field.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 field.o `test -f 'util/physics/field.cc' || echo '$(srcdir)/'`util/physics/field.cc
-
-field.obj: util/physics/field.cc
-@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT field.obj -MD -MP -MF "$(DEPDIR)/field.Tpo" -c -o field.obj `if test -f 'util/physics/field.cc'; then $(CYGPATH_W) 'util/physics/field.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/field.cc'; fi`; \
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o field.o `test -f 'util/physics/fields/field.cc' || echo '$(srcdir)/'`util/physics/fields/field.cc
+
+field.obj: util/physics/fields/field.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT field.obj -MD -MP -MF "$(DEPDIR)/field.Tpo" -c -o field.obj `if test -f 'util/physics/fields/field.cc'; then $(CYGPATH_W) 'util/physics/fields/field.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/fields/field.cc'; fi`; \
 @am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/field.Tpo" "$(DEPDIR)/field.Po"; else rm -f "$(DEPDIR)/field.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/field.cc' object='field.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/fields/field.cc' object='field.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/field.Po' tmpdepfile='$(DEPDIR)/field.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 field.obj `if test -f 'util/physics/field.cc'; then $(CYGPATH_W) 'util/physics/field.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/field.cc'; fi`
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o field.obj `if test -f 'util/physics/fields/field.cc'; then $(CYGPATH_W) 'util/physics/fields/field.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/fields/field.cc'; fi`
+
+gravity.o: util/physics/fields/gravity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gravity.o -MD -MP -MF "$(DEPDIR)/gravity.Tpo" -c -o gravity.o `test -f 'util/physics/fields/gravity.cc' || echo '$(srcdir)/'`util/physics/fields/gravity.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/gravity.Tpo" "$(DEPDIR)/gravity.Po"; else rm -f "$(DEPDIR)/gravity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/fields/gravity.cc' object='gravity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/gravity.Po' tmpdepfile='$(DEPDIR)/gravity.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 gravity.o `test -f 'util/physics/fields/gravity.cc' || echo '$(srcdir)/'`util/physics/fields/gravity.cc
+
+gravity.obj: util/physics/fields/gravity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gravity.obj -MD -MP -MF "$(DEPDIR)/gravity.Tpo" -c -o gravity.obj `if test -f 'util/physics/fields/gravity.cc'; then $(CYGPATH_W) 'util/physics/fields/gravity.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/fields/gravity.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/gravity.Tpo" "$(DEPDIR)/gravity.Po"; else rm -f "$(DEPDIR)/gravity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/physics/fields/gravity.cc' object='gravity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/gravity.Po' tmpdepfile='$(DEPDIR)/gravity.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 gravity.obj `if test -f 'util/physics/fields/gravity.cc'; then $(CYGPATH_W) 'util/physics/fields/gravity.cc'; else $(CYGPATH_W) '$(srcdir)/util/physics/fields/gravity.cc'; fi`
 
 vector.o: lib/math/vector.cc
@@ -1779,5 +1800,5 @@
 
 distdir: $(DISTFILES)
-	$(mkdir_p) $(distdir)/ai $(distdir)/defs $(distdir)/glmenu $(distdir)/lib/coord $(distdir)/lib/data $(distdir)/lib/graphics $(distdir)/lib/graphics/particles $(distdir)/lib/gui/gui $(distdir)/lib/lang $(distdir)/lib/math $(distdir)/lib/util $(distdir)/network $(distdir)/proto $(distdir)/story_entities $(distdir)/subprojects $(distdir)/util $(distdir)/util/animation $(distdir)/util/common $(distdir)/util/physics $(distdir)/world_entities
+	$(mkdir_p) $(distdir)/ai $(distdir)/defs $(distdir)/glmenu $(distdir)/lib/coord $(distdir)/lib/data $(distdir)/lib/graphics $(distdir)/lib/graphics/particles $(distdir)/lib/gui/gui $(distdir)/lib/lang $(distdir)/lib/math $(distdir)/lib/util $(distdir)/network $(distdir)/proto $(distdir)/story_entities $(distdir)/subprojects $(distdir)/util $(distdir)/util/animation $(distdir)/util/common $(distdir)/util/physics $(distdir)/util/physics/fields $(distdir)/world_entities
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
Index: xonox/branches/physics/src/util/physics/field.cc
===================================================================
--- /orxonox/branches/physics/src/util/physics/field.cc	(revision 4179)
+++ 	(revision )
@@ -1,57 +1,0 @@
-/* 
-   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 "field.h"
-
-using namespace std;
-
-
-/**
-   \brief standard constructor
-   \todo this constructor is not jet implemented - do it
-*/
-Field::Field () 
-{
-   this->setClassName ("Field");
-}
-
-
-/**
-   \brief standard deconstructor
-
-*/
-Field::~Field () 
-{
-  // delete what has to be deleted here
-}
-
-
-/**
-   \param magnitude the magnitude of the Field.
-*/
-void Field::setMagnitude(const float& magnitude)
-{
-  this->magnitude = magnitude;
-}
-
-/**
-   \param attenuation The attenuation of the Field (the bigger the smaller the region of influence)
-*/
-void Field::setAttenuation(const float& attenuation)
-{
-  this->attenuation = attenuation;
-}
Index: xonox/branches/physics/src/util/physics/field.h
===================================================================
--- /orxonox/branches/physics/src/util/physics/field.h	(revision 4179)
+++ 	(revision )
@@ -1,59 +1,0 @@
-/* 
-   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: ...
-*/
-
-/*! 
-    \file field.h
-    \brief abstract definition of a Physical Field
-
-    This is a totally abstract class, that only enables different Physical Fields to 
-    exist on a common Level.
-*/
-
-#ifndef _FIELD_H
-#define _FIELD_H
-
-#include "p_node.h"
-
-// FORWARD DEFINITION
-
-
-
-//! An abstract class that represents a Force.
-class Field : public PNode 
-{
- public:
-  Field();
-  virtual ~Field();
-
-  /** 
-      \param data This is the data given to this force, to calculate the ForceVector
-      \returns The Force Vector
-  */
-  virtual Vector& calcForce(Vector& data) = 0;
-
-  void setMagnitude(const float& magnitude);
-  /** \returns The Magnitude of the Field */
-  const float& getMagnitude(void) const {return this->magnitude;}
-
-  void setAttenuation(const float& attenuation);
-  /** \returns The Attenuation of the Fiels */
-  const float& getAttenuation(void) const {return this->attenuation;}
-
- private:
-  float magnitude;                //!< The strength of the field
-  float attenuation;              //!< The Attenuation (the bigger the shorter the influenced distance).
-};
-
-#endif /* _FIELD_H */
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 4180)
@@ -0,0 +1,57 @@
+/* 
+   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 "field.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+   \todo this constructor is not jet implemented - do it
+*/
+Field::Field () 
+{
+   this->setClassName ("Field");
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+Field::~Field () 
+{
+  // delete what has to be deleted here
+}
+
+
+/**
+   \param magnitude the magnitude of the Field.
+*/
+void Field::setMagnitude(const float& magnitude)
+{
+  this->magnitude = magnitude;
+}
+
+/**
+   \param attenuation The attenuation of the Field (the bigger the smaller the region of influence)
+*/
+void Field::setAttenuation(const float& attenuation)
+{
+  this->attenuation = attenuation;
+}
Index: /orxonox/branches/physics/src/util/physics/fields/field.h
===================================================================
--- /orxonox/branches/physics/src/util/physics/fields/field.h	(revision 4180)
+++ /orxonox/branches/physics/src/util/physics/fields/field.h	(revision 4180)
@@ -0,0 +1,59 @@
+/* 
+   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: ...
+*/
+
+/*! 
+    \file field.h
+    \brief abstract definition of a Physical Field
+
+    This is a totally abstract class, that only enables different Physical Fields to 
+    exist on a common Level.
+*/
+
+#ifndef _FIELD_H
+#define _FIELD_H
+
+#include "p_node.h"
+
+// FORWARD DEFINITION
+
+
+
+//! An abstract class that represents a Force.
+class Field : public PNode 
+{
+ public:
+  Field();
+  virtual ~Field();
+
+  /** 
+      \param data This is the data given to this force, to calculate the ForceVector
+      \returns The Force Vector
+  */
+  virtual Vector calcForce(const Vector& data) const = 0;
+
+  void setMagnitude(const float& magnitude);
+  /** \returns The Magnitude of the Field */
+  inline const float& getMagnitude(void) const {return this->magnitude;}
+
+  void setAttenuation(const float& attenuation);
+  /** \returns The Attenuation of the Fiels */
+  inline const float& getAttenuation(void) const {return this->attenuation;}
+
+ private:
+  float magnitude;                //!< The strength of the field
+  float attenuation;              //!< The Attenuation (the bigger the shorter the influenced distance).
+};
+
+#endif /* _FIELD_H */
Index: /orxonox/branches/physics/src/util/physics/fields/gravity.cc
===================================================================
--- /orxonox/branches/physics/src/util/physics/fields/gravity.cc	(revision 4180)
+++ /orxonox/branches/physics/src/util/physics/fields/gravity.cc	(revision 4180)
@@ -0,0 +1,52 @@
+/* 
+   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: ...
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "gravity.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+   \todo this constructor is not jet implemented - do it
+*/
+Gravity::Gravity () 
+{
+   this->setClassName ("Gravity");
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+Gravity::~Gravity () 
+{
+  // delete what has to be deleted here
+}
+
+/**
+   \brief calculates the Gravity on any point in space
+   \param data The Position of the Point in space to attache gravity to.
+   \returns The force.
+*/
+Vector Gravity::calcForce(const Vector& data) const
+{
+  return /*(this->getAbsDir().apply(Vector(0,1,0)))*/ Vector(0,-1,0) * this->getMagnitude();
+}
+
+
Index: /orxonox/branches/physics/src/util/physics/fields/gravity.h
===================================================================
--- /orxonox/branches/physics/src/util/physics/fields/gravity.h	(revision 4180)
+++ /orxonox/branches/physics/src/util/physics/fields/gravity.h	(revision 4180)
@@ -0,0 +1,29 @@
+/*! 
+    \file gravity.h
+    \brief Definition of ...
+
+*/
+
+#ifndef _GRAVITY_H
+#define _GRAVITY_H
+
+#include "field.h"
+
+// FORWARD DEFINITION
+
+
+
+//! A class for ...
+class Gravity : public Field {
+
+ public:
+  Gravity();
+  virtual ~Gravity();
+
+  virtual Vector calcForce(const Vector& data) const;
+
+ private:
+
+};
+
+#endif /* _GRAVITY_H */
