Index: orxonox/trunk/configure
===================================================================
--- orxonox/trunk/configure	(revision 4329)
+++ orxonox/trunk/configure	(revision 4338)
@@ -7962,5 +7962,5 @@
 ## OUTPUT CONFIGURE ##
 ######################
-                                                                                                                                  ac_config_files="$ac_config_files Makefile src/Makefile src/lib/Makefile src/lib/graphics/Makefile src/lib/graphics/importer/Makefile src/lib/gui/Makefile src/lib/gui/console/Makefile src/lib/gui/gui/Makefile src/lib/tinyxml/Makefile src/subprojects/Makefile src/subprojects/testmain/Makefile src/subprojects/importer/Makefile src/subprojects/gui/Makefile"
+                                                                                                                                                      ac_config_files="$ac_config_files Makefile src/Makefile src/lib/Makefile src/lib/graphics/Makefile src/lib/graphics/importer/Makefile src/lib/physics/Makefile src/lib/gui/Makefile src/lib/gui/console/Makefile src/lib/gui/gui/Makefile src/lib/tinyxml/Makefile src/subprojects/Makefile src/subprojects/testmain/Makefile src/subprojects/importer/Makefile src/subprojects/particles/Makefile src/subprojects/gui/Makefile"
 
 
@@ -8561,4 +8561,5 @@
   "src/lib/graphics/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/graphics/Makefile" ;;
   "src/lib/graphics/importer/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/graphics/importer/Makefile" ;;
+  "src/lib/physics/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/physics/Makefile" ;;
   "src/lib/gui/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/gui/Makefile" ;;
   "src/lib/gui/console/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/gui/console/Makefile" ;;
@@ -8568,4 +8569,5 @@
   "src/subprojects/testmain/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/subprojects/testmain/Makefile" ;;
   "src/subprojects/importer/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/subprojects/importer/Makefile" ;;
+  "src/subprojects/particles/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/subprojects/particles/Makefile" ;;
   "src/subprojects/gui/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/subprojects/gui/Makefile" ;;
   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
Index: orxonox/trunk/configure.ac
===================================================================
--- orxonox/trunk/configure.ac	(revision 4329)
+++ orxonox/trunk/configure.ac	(revision 4338)
@@ -519,4 +519,5 @@
 		 src/lib/graphics/Makefile
 		 src/lib/graphics/importer/Makefile
+		 src/lib/physics/Makefile
 		 src/lib/gui/Makefile
 		 src/lib/gui/console/Makefile
@@ -526,4 +527,5 @@
 		 src/subprojects/testmain/Makefile
 		 src/subprojects/importer/Makefile
+		 src/subprojects/particles/Makefile
 		 src/subprojects/gui/Makefile
 		 ])
Index: orxonox/trunk/src/Makefile.am
===================================================================
--- orxonox/trunk/src/Makefile.am	(revision 4329)
+++ orxonox/trunk/src/Makefile.am	(revision 4338)
@@ -15,4 +15,6 @@
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics/fields
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
 AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
@@ -35,8 +37,12 @@
 
 orxonox_DEPENDENCIES = lib/gui/gui/libORXgui.a \
-		       lib/tinyxml/libtinyxml.a
+		       lib/physics/libORXphysics.a \
+		       lib/tinyxml/libtinyxml.a 
+
 orxonox_LDADD = lib/gui/gui/libORXgui.a \
+		lib/physics/libORXphysics.a \
                 lib/tinyxml/libtinyxml.a \
                 $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
+
 
 orxonox_SOURCES= orxonox.cc \
@@ -55,4 +61,5 @@
 		 util/loading/factory.cc \
 		 util/loading/load_param.cc \
+		 util/state.cc \
 		 story_entities/story_entity.cc \
 		 story_entities/campaign.cc \
@@ -112,4 +119,5 @@
 		 util/object_manager.h \
 		 util/garbage_collector.h \
+		 util/state.h \
 		 story_entities/story_entity.h \
 		 story_entities/story_def.h \
Index: orxonox/trunk/src/Makefile.in
===================================================================
--- orxonox/trunk/src/Makefile.in	(revision 4329)
+++ orxonox/trunk/src/Makefile.in	(revision 4338)
@@ -60,9 +60,9 @@
 	garbage_collector.$(OBJEXT) list.$(OBJEXT) \
 	resource_manager.$(OBJEXT) factory.$(OBJEXT) \
-	load_param.$(OBJEXT) story_entity.$(OBJEXT) campaign.$(OBJEXT) \
-	world.$(OBJEXT) world_entity.$(OBJEXT) camera.$(OBJEXT) \
-	player.$(OBJEXT) environment.$(OBJEXT) skysphere.$(OBJEXT) \
-	skybox.$(OBJEXT) terrain.$(OBJEXT) weapon.$(OBJEXT) \
-	projectile.$(OBJEXT) satellite.$(OBJEXT) \
+	load_param.$(OBJEXT) state.$(OBJEXT) story_entity.$(OBJEXT) \
+	campaign.$(OBJEXT) world.$(OBJEXT) world_entity.$(OBJEXT) \
+	camera.$(OBJEXT) player.$(OBJEXT) environment.$(OBJEXT) \
+	skysphere.$(OBJEXT) skybox.$(OBJEXT) terrain.$(OBJEXT) \
+	weapon.$(OBJEXT) projectile.$(OBJEXT) satellite.$(OBJEXT) \
 	character_attributes.$(OBJEXT) test_gun.$(OBJEXT) \
 	test_bullet.$(OBJEXT) test_entity.$(OBJEXT) p_node.$(OBJEXT) \
@@ -110,5 +110,5 @@
 @AMDEP_TRUE@	./$(DEPDIR)/resource_manager.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/satellite.Po ./$(DEPDIR)/skybox.Po \
-@AMDEP_TRUE@	./$(DEPDIR)/skysphere.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/skysphere.Po ./$(DEPDIR)/state.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/story_entity.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/substring.Po ./$(DEPDIR)/terrain.Po \
@@ -247,9 +247,11 @@
 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)/lib/tinyxml -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/loading -I$(MAINSRCDIR)/util/track -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)/lib/tinyxml -I$(MAINSRCDIR)/lib/physics -I$(MAINSRCDIR)/lib/physics/fields -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/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
 orxonox_DEPENDENCIES = lib/gui/gui/libORXgui.a \
-		       lib/tinyxml/libtinyxml.a
+		       lib/physics/libORXphysics.a \
+		       lib/tinyxml/libtinyxml.a 
 
 orxonox_LDADD = lib/gui/gui/libORXgui.a \
+		lib/physics/libORXphysics.a \
                 lib/tinyxml/libtinyxml.a \
                 $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
@@ -270,4 +272,5 @@
 		 util/loading/factory.cc \
 		 util/loading/load_param.cc \
+		 util/state.cc \
 		 story_entities/story_entity.cc \
 		 story_entities/campaign.cc \
@@ -327,4 +330,5 @@
 		 util/object_manager.h \
 		 util/garbage_collector.h \
+		 util/state.h \
 		 story_entities/story_entity.h \
 		 story_entities/story_def.h \
@@ -509,4 +513,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skybox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skysphere.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/story_entity.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/substring.Po@am__quote@
@@ -747,4 +752,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 load_param.obj `if test -f 'util/loading/load_param.cc'; then $(CYGPATH_W) 'util/loading/load_param.cc'; else $(CYGPATH_W) '$(srcdir)/util/loading/load_param.cc'; fi`
+
+state.o: util/state.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT state.o -MD -MP -MF "$(DEPDIR)/state.Tpo" -c -o state.o `test -f 'util/state.cc' || echo '$(srcdir)/'`util/state.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/state.Tpo" "$(DEPDIR)/state.Po"; else rm -f "$(DEPDIR)/state.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/state.cc' object='state.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/state.Po' tmpdepfile='$(DEPDIR)/state.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 state.o `test -f 'util/state.cc' || echo '$(srcdir)/'`util/state.cc
+
+state.obj: util/state.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT state.obj -MD -MP -MF "$(DEPDIR)/state.Tpo" -c -o state.obj `if test -f 'util/state.cc'; then $(CYGPATH_W) 'util/state.cc'; else $(CYGPATH_W) '$(srcdir)/util/state.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/state.Tpo" "$(DEPDIR)/state.Po"; else rm -f "$(DEPDIR)/state.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='util/state.cc' object='state.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/state.Po' tmpdepfile='$(DEPDIR)/state.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 state.obj `if test -f 'util/state.cc'; then $(CYGPATH_W) 'util/state.cc'; else $(CYGPATH_W) '$(srcdir)/util/state.cc'; fi`
 
 story_entity.o: story_entities/story_entity.cc
Index: orxonox/trunk/src/lib/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/Makefile.am	(revision 4329)
+++ orxonox/trunk/src/lib/Makefile.am	(revision 4338)
@@ -3,4 +3,5 @@
 
 SUBDIRS = graphics \
+	  physics \
 	  tinyxml \
 	  $(GTK_PROGS)
Index: orxonox/trunk/src/lib/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/Makefile.in	(revision 4329)
+++ orxonox/trunk/src/lib/Makefile.in	(revision 4338)
@@ -168,4 +168,5 @@
 GTK_PROGS = gui
 SUBDIRS = graphics \
+	  physics \
 	  tinyxml \
 	  $(GTK_PROGS)
Index: orxonox/trunk/src/lib/coord/p_node.h
===================================================================
--- orxonox/trunk/src/lib/coord/p_node.h	(revision 4329)
+++ orxonox/trunk/src/lib/coord/p_node.h	(revision 4338)
@@ -73,4 +73,6 @@
   /** \returns the Velocity of the Node */
   inline const Vector& getVelocity() const {return this->velocity;}
+  /** \returns the last calculated coordinate */
+  inline Vector getLastAbsCoor(void) {return this->lastAbsCoordinate;}
 
   void addChild (PNode* pNode, int parentingMode = DEFAULT_MODE);
Index: orxonox/trunk/src/lib/graphics/light.h
===================================================================
--- orxonox/trunk/src/lib/graphics/light.h	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/light.h	(revision 4338)
@@ -11,5 +11,5 @@
 #define _LIGHT_H
 
-#include "world_entity.h"
+#include "p_node.h"
 #include "glincl.h"
 
@@ -21,5 +21,5 @@
 
 //! A class that handles Lights. The LightManager operates on this.
-class Light : public WorldEntity
+class Light : public PNode
 {
  public:
Index: orxonox/trunk/src/lib/graphics/particles/particle_emitter.cc
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_emitter.cc	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_emitter.cc	(revision 4338)
@@ -31,8 +31,11 @@
 {
    this->setClassID(CL_PARTICLE_EMITTER, "ParticleEmitter");
+
+   this->type = EMITTER_DOT;
+   this->emitterSize = 1.0;
    this->direction = direction;
    this->setSpread(angle);
    this->setEmissionRate(emissionRate);
-   this->setVelocity(velocity);
+   this->setEmissionVelocity(velocity);
 
    this->saveTime = 0.0;
@@ -50,5 +53,4 @@
 {
   ParticleEngine::getInstance()->removeEmitter(this);
-  
 }
 
@@ -71,4 +73,20 @@
 
 /**
+   \param type the new Type of this emitter
+*/
+void ParticleEmitter::setType(EMITTER_TYPE type)
+{
+  this->type = type;
+}
+
+void ParticleEmitter::setSize(float emitterSize)
+{
+  if (emitterSize > 0.0)
+    this->emitterSize = emitterSize;
+  else
+    emitterSize = 0.0;
+}
+
+/**
    \brief set the emission rate
    \param sets the number of particles emitted per second
@@ -79,5 +97,8 @@
 void ParticleEmitter::setEmissionRate(float emissionRate)
 {
-  this->emissionRate = emissionRate;
+  if (emissionRate > 0.0)
+    this->emissionRate = emissionRate;
+  else
+    this->emissionRate = 0.0;
 }
 
@@ -104,5 +125,5 @@
    you may want to use the animation class
 */
-void ParticleEmitter::setVelocity(float velocity, float randomVelocity)
+void ParticleEmitter::setEmissionVelocity(float velocity, float randomVelocity)
 {
   this->velocity = velocity;
@@ -139,7 +160,19 @@
 
 	    // this should spread the Particles evenly. if the Emitter is moved around quickly
-	    Vector equalSpread = this->getVelocity() * random()/RAND_MAX * dt;
+	    Vector equalSpread = this->getVelocity() * rand()/RAND_MAX * dt;
+	    Vector extension; // the Vector for different fields.
 
-	    system->addParticle(this->getAbsCoor() - equalSpread, velocityV);
+	    if (this->type & 2)
+	      {
+		extension = Vector(this->emitterSize * ((float)rand()/RAND_MAX -.5), 0, this->emitterSize * ((float)rand()/RAND_MAX - .5));
+		extension = this->getAbsDir().apply(extension);
+	      }
+	    else if (this->type & 8)
+	      {
+		extension = Vector((float)rand()/RAND_MAX -.5, (float)rand()/RAND_MAX -.5, (float)rand()/RAND_MAX -.5) * this->emitterSize;
+	      }
+
+	    system->addParticle(this->getAbsCoor() + extension - equalSpread, velocityV);
+	    
 	  }
       }
Index: orxonox/trunk/src/lib/graphics/particles/particle_emitter.h
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_emitter.h	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_emitter.h	(revision 4338)
@@ -13,8 +13,9 @@
 class ParticleSystem;
 
-typedef enum EMITTER_TYPE {EMITTER_DOT,
-			   EMITTER_PLANE,
-			   EMITTER_SPHERE,
-			   EMITTER_CUBE};
+//! The form of the Emitter to emit from
+typedef enum EMITTER_TYPE {EMITTER_DOT   = 1,
+			   EMITTER_PLANE = 2,
+			   EMITTER_SPHERE= 4,
+			   EMITTER_CUBE  = 8};
 
 //! A default singleton class.
@@ -32,11 +33,26 @@
 
   /* controlling the behavour: these can be used as Animation interfaces */
+  void setType(EMITTER_TYPE type);
+  void setSize(float emitterSize);
   void setEmissionRate(float emissionRate);
   void setSpread(float angle, float randomAngle = 0.0);
-  void setVelocity(float velocity, float randomVelocity = 0.0);
+  void setEmissionVelocity(float velocity, float randomVelocity = 0.0);
+
+  /** \returns the type of the emitter */
+  inline EMITTER_TYPE getType(void) const { return this->type; };
+  /** \returns the Size of the emitter */
+  inline float getSize(void) const { return this->emitterSize; };
+  /** \returns the emissionRate */
+  inline float getEmissionRate(void) const { return this->emissionRate; };
+  /** \returns the SpreadAngle of the emitter */
+  inline float getSpread(void) { return this->angle; };
+  /** \returns the EmissionVelocity of the emitter */
+  inline float getEmissionVelocity(void) { return this->velocity; };
 
   void debug(void);
 
  private:
+  EMITTER_TYPE type;    //!< The type of emitter this is
+  float emitterSize;    //!< The size of the emitter (not for EMITTER_DOT)
   Vector direction;     //!< emition direction
   float angle;          //!< max angle from the direction of the emitter
Index: orxonox/trunk/src/lib/graphics/particles/particle_engine.cc
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_engine.cc	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_engine.cc	(revision 4338)
@@ -267,4 +267,93 @@
 
 /**
+   \param systemName the name of the system to search for
+   \returns the system called by systemName or NULL if not found
+*/
+ParticleSystem* ParticleEngine::getSystemByName(const char* systemName) const
+{
+  tIterator<ParticleSystem>* tmpIt = systemList->getIterator();
+  ParticleSystem* tmpSys = tmpIt->nextElement();
+  while(tmpSys)
+    {
+      if (!strcmp(systemName, tmpSys->getName()))
+	{
+	  delete tmpIt;
+	  return tmpSys;
+	}
+      tmpSys = tmpIt->nextElement();
+    }
+  delete tmpIt;
+  return NULL;
+}
+
+/**
+   \param number the n-th system to return
+   \returns the system called by number or NULL if not found
+*/
+ParticleSystem* ParticleEngine::getSystemByNumber(unsigned int number) const
+{
+  int count = 0;
+  tIterator<ParticleSystem>* tmpIt = systemList->getIterator();
+  ParticleSystem* tmpSys = tmpIt->nextElement();
+  while(tmpSys)
+    {
+      count++;
+      if ( count == number)
+	{
+	  delete tmpIt;
+	  return tmpSys;
+	}
+      tmpSys = tmpIt->nextElement();
+    }
+  delete tmpIt;
+  return NULL;
+}
+
+/**
+   \param emitterName the name of the emitter to search for
+   \returns the emitter called by emitterName or NULL if not found
+*/
+ParticleEmitter* ParticleEngine::getEmitterByName(const char* emitterName) const
+{
+  tIterator<ParticleEmitter>* tmpIt = emitterList->getIterator();
+  ParticleEmitter* tmpEmit = tmpIt->nextElement();
+  while(tmpEmit)
+    {
+      if (!strcmp(emitterName, tmpEmit->getName()))
+	{
+	  delete tmpIt;
+	  return tmpEmit;
+	}
+      tmpEmit = tmpIt->nextElement();
+    }
+  delete tmpIt;
+  return NULL;
+}
+
+
+/**
+   \param number the n-th emitter to return
+   \returns the emitter called by number or NULL if not found
+*/
+ParticleEmitter* ParticleEngine::getEmitterByNumber(unsigned int number) const
+{
+  int count = 0;
+  tIterator<ParticleEmitter>* tmpIt = emitterList->getIterator();
+  ParticleEmitter* tmpEmit = tmpIt->nextElement();
+  while(tmpEmit)
+    {
+      count++;
+      if ( count == number)
+	{
+	  delete tmpIt;
+	  return tmpEmit;
+	}
+      tmpEmit = tmpIt->nextElement();
+    }
+  delete tmpIt;
+  return NULL;
+}
+
+/**
    \brief outputs some nice debug information
 */
Index: orxonox/trunk/src/lib/graphics/particles/particle_engine.h
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_engine.h	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_engine.h	(revision 4338)
@@ -13,6 +13,4 @@
 // FORWARD DEFINITION 
 template<class T> class tList;
-class ParticleSystem;
-class ParticleEmitter;
 
 struct ParticleConnection
@@ -41,4 +39,9 @@
   bool breakConnection(ParticleConnection* connection);
 
+  ParticleSystem* getSystemByName(const char* systemName) const;
+  ParticleSystem* getSystemByNumber(unsigned int number) const;
+  ParticleEmitter* getEmitterByName(const char* emitterName) const;
+  ParticleEmitter* getEmitterByNumber(unsigned int number) const;
+
   void debug();
 
Index: orxonox/trunk/src/lib/graphics/particles/particle_system.cc
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_system.cc	(revision 4338)
@@ -20,6 +20,14 @@
 #include "particle_emitter.h"
 #include "particle_engine.h"
+
+#include "field.h"
+
 #include "compiler.h"
 #include "material.h"
+#include "state.h"
+
+
+// needed to find the Position of the Camera
+#include "world.h"
 
 using namespace std;
@@ -34,18 +42,19 @@
 ParticleSystem::ParticleSystem (unsigned int maxCount, PARTICLE_TYPE type)
 {
-   this->setClassID(CL_PARTICLE_SYSTEM, "ParticleSystem");
-   this->material = NULL;
-   this->name = NULL;
-   this->maxCount = maxCount;
-   this->count = 0;
-   this->particles = NULL;
-   this->deadList = NULL;
-   this->setConserve(1);
-   this->setLifeSpan(1);
-   this->setInheritSpeed(0);
-   this->glID = NULL;
-   this->setRadius(1.0, 1.0, 0.0);
-   this->setType(type, 1);
-   ParticleEngine::getInstance()->addSystem(this);
+  this->setClassID(CL_PARTICLE_SYSTEM, "ParticleSystem");
+  this->material = NULL;
+  this->name = NULL;
+  this->maxCount = maxCount;
+  this->count = 0;
+  this->particles = NULL;
+  this->deadList = NULL;
+  this->setConserve(1);
+  this->setLifeSpan(1);
+  this->setInheritSpeed(0);
+  this->glID = NULL;
+  this->setRadius(1.0, 1.0, 0.0);
+  this->setType(type, 1);
+  this->setColor(1.0,1.0,1.0,1.0, .5,.5,.5,.5, .0,.0,.0,.0);
+  ParticleEngine::getInstance()->addSystem(this);
 }
 
@@ -106,29 +115,22 @@
   this->particleType = particleType;
   this->dialectCount = count;
-  if (glID != NULL)
-    delete glID;
-
-  glID = new GLuint[count];
-  for (int i = 0; i< count; i++)
-    glID[i] = 0;
-
-  glID[0] = glGenLists(count);
-  
-  material = new Material("transperencyMap");
-  material->setDiffuseMap("pictures/radialTransparency.png");
-  //  material->setTransparency(.5);
-
-  glNewList(glID[0], GL_COMPILE);
-  glBegin(GL_TRIANGLE_STRIP);
-  glTexCoord2f(1, 1);
-  glVertex3f(0.0, .5, .5);
-  glTexCoord2f(1, 0);
-  glVertex3f(0.0, -.5, .5);
-  glTexCoord2f(0, 1);
-  glVertex3f(0.0, .5, -.5);
-  glTexCoord2f(0, 0);
-  glVertex3f(0.0, -.5, -.5);
-  glEnd();
-  glEndList();
+  //  if (glID != NULL)
+  //    delete glID;
+
+  //  glID = new GLuint[count];
+  //  for (int i = 0; i< count; i++)
+  //    glID[i] = 0;
+
+  //  glID[0] = glGenLists(count);
+  if (this->material)
+    delete this->material;
+  this->material = NULL;
+
+  if (this->particleType == PARTICLE_SPRITE)
+    {
+      this->material = new Material("transperencyMap");
+      this->material->setDiffuseMap("pictures/radialTransparency.png");
+      //  material->setTransparency(.5);
+    }
 }
 
@@ -192,4 +194,29 @@
 }
 
+
+/**
+   \brief Tells the ParticleSystem how it should iterate the color over time
+   \param ....
+*/
+void ParticleSystem::setColor(GLfloat br, GLfloat bg, GLfloat bb, GLfloat ba,
+			      GLfloat mr, GLfloat mg, GLfloat mb, GLfloat ma,
+			      GLfloat er, GLfloat eg, GLfloat eb, GLfloat ea)
+{
+  this->startColor[0] = br;
+  this->startColor[1] = bg;
+  this->startColor[2] = bb;
+  this->startColor[3] = ba;
+
+  this->midColor[0] = mr;
+  this->midColor[1] = mg;
+  this->midColor[2] = mb;
+  this->midColor[3] = ma;
+
+  this->endColor[0] = er;
+  this->endColor[1] = eg;
+  this->endColor[2] = eb;
+  this->endColor[3] = ea;
+}
+
 /**
    \brief ticks the system.
@@ -207,11 +234,30 @@
       tickPart->radius += tickPart->radiusIt * dt;
 
+      // applying force to the System.
+      tickPart->velocity += tickPart->extForce * tickPart->mass;
+      tickPart->extForce = Vector(0,0,0);
+
+      // applying Color
+      //! \todo better algorithm to do this \todo also implement the midColor
+      if (tickPart->lifeCycle < .5)
+	{
+	  tickPart->color[0] = this->startColor[0] *(1.0-tickPart->lifeCycle*2.0) + this->midColor[0] *(tickPart->lifeCycle*2);
+	  tickPart->color[1] = this->startColor[1] *(1.0-tickPart->lifeCycle*2.0) + this->midColor[1] *(tickPart->lifeCycle*2);
+	  tickPart->color[2] = this->startColor[2] *(1.0-tickPart->lifeCycle*2.0) + this->midColor[2] *(tickPart->lifeCycle*2);
+	  tickPart->color[3] = this->startColor[3] *(1.0-tickPart->lifeCycle*2.0) + this->midColor[3] *(tickPart->lifeCycle*2);
+	}
+      else
+	{
+	  tickPart->color[0] = this->midColor[0] *(2.0-tickPart->lifeCycle*2.0) + this->endColor[0] *(tickPart->lifeCycle*2);
+	  tickPart->color[1] = this->midColor[1] *(2.0-tickPart->lifeCycle*2.0) + this->endColor[1] *(tickPart->lifeCycle*2);
+	  tickPart->color[2] = this->midColor[2] *(2.0-tickPart->lifeCycle*2.0) + this->endColor[2] *(tickPart->lifeCycle*2);
+	  tickPart->color[3] = this->midColor[3] *(2.0-tickPart->lifeCycle*2.0) + this->endColor[3] *(tickPart->lifeCycle*2);
+	}	  
       // many more to come
-
 
       if (this->conserve < 1.0)
 	tickPart->velocity = tickPart->velocity * this->conserve;
       // find out if we have to delete tickPart
-      if ((tickPart->timeToLive -= dt) <= 0)
+      if ((tickPart->lifeCycle += dt/tickPart->lifeTime) >= 1.0)
 	{
 	  // remove the particle from the list
@@ -241,39 +287,87 @@
 }
 
+/** 
+    \brief applies some force to a Particle.
+ */
+void ParticleSystem::applyField(float dt, Field* field)
+{
+  Particle* tickPart = particles;
+  while (tickPart)
+    {
+      tickPart->extForce += field->calcForce(dt, tickPart->position);
+      tickPart = tickPart->next;
+    }
+}
+
+
 /**
    \brief draws all the Particles of this System
    \param the time passed in seconds (since the last draw)
+
+   The Cases in this Function all do the same:
+   Drawing all the particles with the appropriate Type.
+   This is just the fastest Way to do this, but will most likely be changed in the future.
 */
 void ParticleSystem::draw(float dt)
 {
   glPushAttrib(GL_ENABLE_BIT);
-  //  material->select();
+  glDisable(GL_LIGHTING);
+
   Particle* drawPart = particles;
-
+      
   switch (this->particleType)
     {
+    default:
     case PARTICLE_SPRITE:
       glMatrixMode(GL_MODELVIEW);
-      //  glDisable(GL_LIGHTING);
+      glDisable(GL_DEPTH_TEST);
+
       material->select(); 
-      glDisable(GL_DEPTH_TEST);
+      //      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+      
+
       while (likely(drawPart != NULL))
 	{
-	  glPushMatrix();
-	  glTranslatef(drawPart->position.x, drawPart->position.y, drawPart->position.z);
-	  glScalef(drawPart->radius, drawPart->radius, drawPart->radius);
-	  glCallList(*this->glID);
-	  
-	  //glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
+	  glColor4fv(drawPart->color);
+	  //! \todo implement a faster code for the look-at Camera algorithm.
+
+	  const PNode* camera = State::getInstance()->getCamera();  //!< \todo MUST be different
+	  Vector cameraPos = camera->getAbsCoor();
+	  Vector cameraTargetPos = State::getInstance()->getCameraTarget()->getAbsCoor();
+	  Vector view = cameraTargetPos - cameraPos;
+	  Vector up = Vector(0, 1, 0);
+	  up = camera->getAbsDir().apply(up);
+	  Vector h = up.cross(view);
+	  Vector v = h.cross(view);
+	  h.normalize();
+	  v.normalize();
+	  v *= .5 * drawPart->radius;
+	  h *= .5 * drawPart->radius;
+
+	  glBegin(GL_TRIANGLE_STRIP);
+	  glTexCoord2i(1, 1);
+	  glVertex3f(drawPart->position.x - h.x - v.x,
+		     drawPart->position.y - h.y - v.y,
+		     drawPart->position.z - h.z - v.z);
+	  glTexCoord2i(0, 1);
+	  glVertex3f(drawPart->position.x - h.x + v.x,
+		     drawPart->position.y - h.y + v.y,
+		     drawPart->position.z - h.z + v.z);
+	  glTexCoord2i(1, 0);
+	  glVertex3f(drawPart->position.x + h.x - v.x,
+		     drawPart->position.y + h.y - v.y,
+		     drawPart->position.z + h.z - v.z);
+	  glTexCoord2i(0, 0);
+	  glVertex3f(drawPart->position.x + h.x + v.x,
+		     drawPart->position.y + h.y + v.y,
+		     drawPart->position.z + h.z + v.z);
+
+	  glEnd();
+  
 	  drawPart = drawPart->next;
-	  glPopMatrix();
-	}
-      //      glEnd();
-      
-      //  glEnable(GL_LIGHTING);
-      
-      glEnable(GL_DEPTH_TEST);
+	}
+
+      
       break;
-    default:
 
     case PARTICLE_SPARK:
@@ -282,4 +376,5 @@
       while (likely(drawPart != NULL))
 	{
+	  glColor4fv(drawPart->color);
 	  glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
 	  glVertex3f(drawPart->position.x - drawPart->velocity.x,
@@ -295,4 +390,6 @@
       while (likely(drawPart != NULL))
 	{
+	  glColor4fv(drawPart->color);
+
 	  glLineWidth(drawPart->radius);
 
@@ -349,5 +446,6 @@
 	}
       
-      particles->timeToLive = this->lifeSpan + (float)(rand()/RAND_MAX)* this->randomLifeSpan;
+      particles->lifeTime = this->lifeSpan + (float)(rand()/RAND_MAX)* this->randomLifeSpan;
+      particles->lifeCycle = 0.0;
       particles->position = position;
       particles->velocity = velocity;
@@ -357,5 +455,5 @@
       particles->radius = this->startRadius + (rand()/RAND_MAX-.5)*this->randomStartRadius;
       
-      particles->radiusIt = (this->endRadius + (rand()/RAND_MAX-.5)*this->randomEndRadius - particles->radius) / particles->timeToLive;
+      particles->radiusIt = (this->endRadius + (rand()/RAND_MAX-.5)*this->randomEndRadius - particles->radius) / particles->lifeTime;
 
       ++this->count;
Index: orxonox/trunk/src/lib/graphics/particles/particle_system.h
===================================================================
--- orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4329)
+++ orxonox/trunk/src/lib/graphics/particles/particle_system.h	(revision 4338)
@@ -31,16 +31,21 @@
 class Material;
 class ParticleEmitter;
-
+class Field;
 
 //! A struct for one Particle
 typedef struct Particle
 {
-  float timeToLive;           //!< The time this particle lives from NOW on.
+  float lifeTime;             //!< The time this particle has to live.
+  float lifeCycle;            //!< The fraction of time passed. (in percentage of its lifeTime)
+
   Vector position;            //!< The current position of this particle.
   Vector velocity;            //!< The current velocity of this particle.
+  Vector extForce;            //!< The external Force that influences this Particle.
   Quaternion rotation;        //!< The current rotation of this particle.
   float mass;                 //!< The mass of this particle.
   float radius;               //!< The current size of this particle.
   float radiusIt;             //!< The difference of the Size per second.
+
+  GLfloat color [4];          //!< A Color for the particles.
 
   PARTICLE_TYPE type;
@@ -69,4 +74,27 @@
   void setMass(float mass, float randomMass);
 
+  void setColor(GLfloat br, GLfloat bg, GLfloat bb, GLfloat ba,
+		GLfloat mr, GLfloat mg, GLfloat mb, GLfloat ma,
+		GLfloat er, GLfloat eg, GLfloat eb, GLfloat ea);
+
+  /** \returns the Type of the particles */
+  inline PARTICLE_TYPE getType(void) const { return this->particleType; };
+  /** \returns the Material that lies on this particles */
+  inline const Material* getMaterial(void) const { return this->material; };
+  /** \returns the inherit-speed-factor */
+  inline float getInheritSpeed(void) const { return this->inheritSpeed; };
+  /** \returns the lifespan of the particles */
+  inline float getLifeSpan(void) const { return this->lifeSpan; };
+  /** \returns the starting-radius of the particles */
+  inline float getStartRadius(void) const { return this->startRadius; };
+  /** \returns the end-radius of the particles */
+  inline float getEndRadius(void) const { return this->endRadius; };
+  /** \returns the conserve-factor of the particles */
+  inline float getConserve(void) const { return this->conserve; };
+  /** \returns the initial mass of the particles */
+  inline float getMass(void) const { return this->initialMass; };
+
+  void applyField(float dt, Field* field);
+
   void tick(float dt);
   void draw(float dt);
@@ -79,12 +107,16 @@
   float conserve;            //!< How much energy gets conserved to the next Tick.
   float lifeSpan;            //!< Initial lifetime of a Particle.
-  float randomLifeSpan;
-  float startRadius;
-  float endRadius;
-  float randomStartRadius;
-  float randomEndRadius;
-  float initialMass;
-  float randomInitialMass;
-  float inheritSpeed;
+  float randomLifeSpan;      //!< A random value for the Lifespan (around the initial lifetime)
+  float startRadius;         //!< The beginning Radius of the Particle
+  float endRadius;           //!< The end Radius of the Particle
+  float randomStartRadius;   //!< The Random start Radius (begin + rand*randomValue)
+  float randomEndRadius;     //!< Random end value
+  float initialMass;         //!< The initial Mass of the Particle
+  float randomInitialMass;   //!< The random initial Mass of the Particle
+  float inheritSpeed;        //!< How much speed the particle inherits from the Emitters speed \todo move this to the emitter
+
+  GLfloat startColor[4];     //!< Color of the Particle at the beginning
+  GLfloat midColor[4];       //!< Color of the Particle at the middle of its lifeSpan
+  GLfloat endColor[4];       //!< Color of the Particle at the end of its lifeSpan
 
   // particles
Index: orxonox/trunk/src/lib/gui/gui/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/gui/gui/Makefile.am	(revision 4329)
+++ orxonox/trunk/src/lib/gui/gui/Makefile.am	(revision 4338)
@@ -25,5 +25,6 @@
 noinst_LIBRARIES = libORXgui.a 
 
-libORXgui_a_CPPFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+libORXgui_a_CPPFLAGS = -DBUILD_ORXONOX \
+			$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
 
 libORXgui_a_SOURCES = gui.cc \
Index: orxonox/trunk/src/lib/gui/gui/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/gui/gui/Makefile.in	(revision 4329)
+++ orxonox/trunk/src/lib/gui/gui/Makefile.in	(revision 4338)
@@ -200,5 +200,7 @@
 AM_LDFLAGS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)
 noinst_LIBRARIES = libORXgui.a 
-libORXgui_a_CPPFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+libORXgui_a_CPPFLAGS = -DBUILD_ORXONOX \
+			$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+
 libORXgui_a_SOURCES = gui.cc \
 		      gui_gtk.cc \
Index: orxonox/trunk/src/lib/gui/gui/gui_gtk.cc
===================================================================
--- orxonox/trunk/src/lib/gui/gui/gui_gtk.cc	(revision 4329)
+++ orxonox/trunk/src/lib/gui/gui/gui_gtk.cc	(revision 4338)
@@ -47,6 +47,11 @@
 bool initGUI(int argc, char *argv[])
 {
-  executable = new char[strlen(argv[0])+1];
-  strcpy(executable, argv[0]);
+  if (argv)
+    {
+      executable = new char[strlen(argv[0])+1];
+      strcpy(executable, argv[0]);
+    }
+  else
+    executable = NULL;
 
 #ifdef HAVE_GTK2
@@ -1073,12 +1078,14 @@
 #ifdef HAVE_GTK2
 /** 
-    \brief Signal OptionChange writes the Value from the Slider to its Object-Database.
-    \param widget The widget(Slider) that has a changed Value
-    \param slider the Slider-Object that should receive the change.
+    \brief Signal OptionChange writes the Value from the Option to its Object-Database.
+    \param widget The widget(Option) that has a changed Value
+    \param option the Option-Object that should receive the change.
 */
 gint Option::OptionChange(GtkWidget *widget, Widget* option)
 {
   static_cast<Option*>(option)->changeOption();
-  flags->setTextFromFlags(Window::mainWindow);  //// must be different !!!
+#ifdef BUILD_ORXONOX
+  flags->setTextFromFlags(Window::mainWindow);
+#endif
 }
 #endif /* HAVE_GTK2 */
@@ -1242,7 +1249,7 @@
    \param end The maximal Value of the slider.
 */
-Slider::Slider(const char* slidername, int start, int end)
-{
-  this->optionType = GUI_INT;
+Slider::Slider(const char* slidername, float start, float end)
+{
+  this->optionType = GUI_FLOAT;
 
   this->start = start;
@@ -1268,10 +1275,21 @@
 
 /**
+   \brief sets the exactness of the widget
+   \param exactness count of digits after the dot
+*/
+void Slider::setExactness(int exactness)
+{
+#ifdef HAVE_GTK2
+ gtk_scale_set_digits(GTK_SCALE(this->widget), exactness);
+#endif /* HAVE_GTK2 */
+}
+
+/**
    \brief Setting a new value to the Slider.
    Maybe you also require a Slider::redraw() for this to display
 */
-void Slider::setValue(int value)
-{
-  this->value = value;
+void Slider::setValue(float value)
+{
+  this->fValue = value;
 }
 
@@ -1283,5 +1301,5 @@
 {
 #ifdef HAVE_GTK2
-  gtk_range_set_value(GTK_RANGE(this->widget), this->value);
+  gtk_range_set_value(GTK_RANGE(this->widget), this->fValue);
 #endif /* HAVE_GTK2 */
 }
@@ -1293,5 +1311,5 @@
 {
 #ifdef HAVE_GTK2
-  this->value =(int)gtk_range_get_value(GTK_RANGE(this->widget));
+  this->fValue = gtk_range_get_value(GTK_RANGE(this->widget));
 #else /* HAVE_GTK2 */
   char tmpChar[20];
@@ -1299,12 +1317,26 @@
   scanf("%s", tmpChar);
 
-  if ((this->value = atoi(tmpChar))> this->end)
-    this->value = this->end;
-  if (this->value <= this->start)
-    this->value = this->start;
-
-  PRINT(0)("%s set to: %d\n",this->title, this->value);
-#endif /* HAVE_GTK2 */
-}
+  if ((this->fValue = atof(tmpChar))> this->end)
+    this->fValue = this->end;
+  if (this->fValue <= this->start)
+    this->fValue = this->start;
+
+  PRINT(0)("%s set to: %d\n",this->title, this->fValue);
+#endif /* HAVE_GTK2 */
+}
+
+char* Slider::save(void)
+{
+  char* value = new char [30];
+  sprintf (value, "%f", this->fValue);
+  return value;
+}
+void Slider::load(char* loadString)
+{
+  this->fValue = atof(loadString);
+  PRINT(5)("Loading %s: %s %f\n", this->title, loadString, fValue); 
+  this->redraw();
+}
+
 
 //////////
@@ -1387,8 +1419,17 @@
 {
   MenuItem* tmpItem = this->firstItem;
-  for (int i = 0; i<this->value; i++)
-    tmpItem = tmpItem->next;
-      
-  return tmpItem->name;
+  for (int i = 0; i < this->value; i++)
+    if (tmpItem)
+      tmpItem = tmpItem->next;
+    else
+      break;
+  if (tmpItem)
+    {
+      char* tmpName = new char[strlen(tmpItem->name)+1];
+      strcpy(tmpName, tmpItem->name);
+      return tmpName;
+    }
+  else 
+    return NULL;
 }
 
@@ -1471,5 +1512,5 @@
 
 #endif /* HAVE_GTK2 */
-  PRINT(5)("%s set to: %d\n", this->title, this->value);
+  PRINT(1)("%s set to: %d\n", this->title, this->value);
 }
 
Index: orxonox/trunk/src/lib/gui/gui/gui_gtk.h
===================================================================
--- orxonox/trunk/src/lib/gui/gui/gui_gtk.h	(revision 4329)
+++ orxonox/trunk/src/lib/gui/gui/gui_gtk.h	(revision 4338)
@@ -61,4 +61,5 @@
 
   virtual void setTitle(const char* title);  //!< An abstract Function, that sets the title of Widgets.
+  virtual const char* getTitle(void) const { return this->title; };
 
   Widget* findWidgetByName(char* name, unsigned int depth);
@@ -296,13 +297,18 @@
 {
  private:
-  int start;                            //!< The beginning of the Slider-range.
-  int end;                              //!< The end of the Slider-range.
- public:
-  Slider(const char* slidername, int start, int end);
+  float start;                            //!< The beginning of the Slider-range.
+  float end;                              //!< The end of the Slider-range.
+  float fValue;                           //!< a value for the slider
+ public:
+  Slider(const char* slidername, float start, float end);
   virtual ~Slider(void);
 
-  void setValue(int value);
-  virtual void redraw(void);
-  virtual void changeOption(void);
+  void setExactness(int exactness);
+  void setValue(float value);
+  virtual void redraw(void);
+  virtual void changeOption(void);
+
+  virtual char* save(void);
+  virtual void load(char* loadString);
 };
 
Index: orxonox/trunk/src/lib/physics/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/physics/Makefile.am	(revision 4338)
+++ orxonox/trunk/src/lib/physics/Makefile.am	(revision 4338)
@@ -0,0 +1,48 @@
+MAINSRCDIR=../..
+AM_CXXFLAGS=-I$(MAINSRCDIR)
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/coord
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/data
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/importer
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/particles
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/lang
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics/fields
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/network
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/glmenu
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/ai
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/animation
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/loading
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
+
+
+noinst_LIBRARIES = libORXphysics.a 
+
+libORXphysics_a_SOURCES = i_physics.cc \
+		       	  physics_connection.cc \
+		          physics_engine.cc \
+		          fields/field.cc \
+		          fields/gravity.cc \
+		          fields/point_gravity.cc \
+		          fields/twirl.cc
+
+noinst_HEADERS= i_physics.h \
+	        physics_connection.h \
+	        physics_engine.h \
+	        fields/field.h \
+	        fields/gravity.h \
+	        fields/point_gravity.h \
+	        fields/twirl.h
Index: orxonox/trunk/src/lib/physics/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/physics/Makefile.in	(revision 4338)
+++ orxonox/trunk/src/lib/physics/Makefile.in	(revision 4338)
@@ -0,0 +1,509 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SOURCES = $(libORXphysics_a_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+subdir = src/lib/physics
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libORXphysics_a_AR = $(AR) $(ARFLAGS)
+libORXphysics_a_LIBADD =
+am_libORXphysics_a_OBJECTS = i_physics.$(OBJEXT) \
+	physics_connection.$(OBJEXT) physics_engine.$(OBJEXT) \
+	field.$(OBJEXT) gravity.$(OBJEXT) point_gravity.$(OBJEXT) \
+	twirl.$(OBJEXT)
+libORXphysics_a_OBJECTS = $(am_libORXphysics_a_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/field.Po ./$(DEPDIR)/gravity.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/i_physics.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/physics_connection.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/physics_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/point_gravity.Po ./$(DEPDIR)/twirl.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(libORXphysics_a_SOURCES)
+DIST_SOURCES = $(libORXphysics_a_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+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)/lib/physics -I$(MAINSRCDIR)/lib/physics/fields -I$(MAINSRCDIR)/lib/tinyxml -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/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
+noinst_LIBRARIES = libORXphysics.a 
+libORXphysics_a_SOURCES = i_physics.cc \
+		       	  physics_connection.cc \
+		          physics_engine.cc \
+		          fields/field.cc \
+		          fields/gravity.cc \
+		          fields/point_gravity.cc \
+		          fields/twirl.cc
+
+noinst_HEADERS = i_physics.h \
+	        physics_connection.h \
+	        physics_engine.h \
+	        fields/field.h \
+	        fields/gravity.h \
+	        fields/point_gravity.h \
+	        fields/twirl.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/physics/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/lib/physics/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libORXphysics.a: $(libORXphysics_a_OBJECTS) $(libORXphysics_a_DEPENDENCIES) 
+	-rm -f libORXphysics.a
+	$(libORXphysics_a_AR) libORXphysics.a $(libORXphysics_a_OBJECTS) $(libORXphysics_a_LIBADD)
+	$(RANLIB) libORXphysics.a
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gravity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i_physics.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)/point_gravity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twirl.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+field.o: 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 'fields/field.cc' || echo '$(srcdir)/'`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='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 'fields/field.cc' || echo '$(srcdir)/'`fields/field.cc
+
+field.obj: 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 'fields/field.cc'; then $(CYGPATH_W) 'fields/field.cc'; else $(CYGPATH_W) '$(srcdir)/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='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 'fields/field.cc'; then $(CYGPATH_W) 'fields/field.cc'; else $(CYGPATH_W) '$(srcdir)/fields/field.cc'; fi`
+
+gravity.o: 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 'fields/gravity.cc' || echo '$(srcdir)/'`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='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 'fields/gravity.cc' || echo '$(srcdir)/'`fields/gravity.cc
+
+gravity.obj: 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 'fields/gravity.cc'; then $(CYGPATH_W) 'fields/gravity.cc'; else $(CYGPATH_W) '$(srcdir)/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='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 'fields/gravity.cc'; then $(CYGPATH_W) 'fields/gravity.cc'; else $(CYGPATH_W) '$(srcdir)/fields/gravity.cc'; fi`
+
+point_gravity.o: fields/point_gravity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT point_gravity.o -MD -MP -MF "$(DEPDIR)/point_gravity.Tpo" -c -o point_gravity.o `test -f 'fields/point_gravity.cc' || echo '$(srcdir)/'`fields/point_gravity.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/point_gravity.Tpo" "$(DEPDIR)/point_gravity.Po"; else rm -f "$(DEPDIR)/point_gravity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fields/point_gravity.cc' object='point_gravity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/point_gravity.Po' tmpdepfile='$(DEPDIR)/point_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 point_gravity.o `test -f 'fields/point_gravity.cc' || echo '$(srcdir)/'`fields/point_gravity.cc
+
+point_gravity.obj: fields/point_gravity.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT point_gravity.obj -MD -MP -MF "$(DEPDIR)/point_gravity.Tpo" -c -o point_gravity.obj `if test -f 'fields/point_gravity.cc'; then $(CYGPATH_W) 'fields/point_gravity.cc'; else $(CYGPATH_W) '$(srcdir)/fields/point_gravity.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/point_gravity.Tpo" "$(DEPDIR)/point_gravity.Po"; else rm -f "$(DEPDIR)/point_gravity.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fields/point_gravity.cc' object='point_gravity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/point_gravity.Po' tmpdepfile='$(DEPDIR)/point_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 point_gravity.obj `if test -f 'fields/point_gravity.cc'; then $(CYGPATH_W) 'fields/point_gravity.cc'; else $(CYGPATH_W) '$(srcdir)/fields/point_gravity.cc'; fi`
+
+twirl.o: fields/twirl.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT twirl.o -MD -MP -MF "$(DEPDIR)/twirl.Tpo" -c -o twirl.o `test -f 'fields/twirl.cc' || echo '$(srcdir)/'`fields/twirl.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/twirl.Tpo" "$(DEPDIR)/twirl.Po"; else rm -f "$(DEPDIR)/twirl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fields/twirl.cc' object='twirl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/twirl.Po' tmpdepfile='$(DEPDIR)/twirl.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 twirl.o `test -f 'fields/twirl.cc' || echo '$(srcdir)/'`fields/twirl.cc
+
+twirl.obj: fields/twirl.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT twirl.obj -MD -MP -MF "$(DEPDIR)/twirl.Tpo" -c -o twirl.obj `if test -f 'fields/twirl.cc'; then $(CYGPATH_W) 'fields/twirl.cc'; else $(CYGPATH_W) '$(srcdir)/fields/twirl.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/twirl.Tpo" "$(DEPDIR)/twirl.Po"; else rm -f "$(DEPDIR)/twirl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fields/twirl.cc' object='twirl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/twirl.Po' tmpdepfile='$(DEPDIR)/twirl.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 twirl.obj `if test -f 'fields/twirl.cc'; then $(CYGPATH_W) 'fields/twirl.cc'; else $(CYGPATH_W) '$(srcdir)/fields/twirl.cc'; fi`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(mkdir_p) $(distdir)/fields
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/trunk/src/lib/physics/fields/field.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/field.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/field.cc	(revision 4338)
@@ -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: ...
+*/
+
+//#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");
+   this->setMagnitude(1);
+   this->setAttenuation(0);
+}
+
+
+/**
+   \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/trunk/src/lib/physics/fields/field.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/field.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/field.h	(revision 4338)
@@ -0,0 +1,60 @@
+/* 
+   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 dt The time over which to apply the force
+      \param data This is the data given to this force, to calculate the ForceVector
+      \returns The Force Vector
+  */
+  virtual Vector calcForce(float dt, 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/trunk/src/lib/physics/fields/fields.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/fields.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/fields.h	(revision 4338)
@@ -0,0 +1,40 @@
+/* 
+   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 fields.h
+    \brief collection of all Headers of all the different fileds there are in the 
+    PhysicsEngine
+*/
+
+
+#ifndef _FILEDS_H
+#define _FIELDS_H
+
+/* The superclass */
+#include "field.h"
+
+/* subclasses Fields without Position */
+#include "gravity.h"
+
+/* subclasses of field with position */
+#include "point_gravity.h"
+#include "twirl.h"
+
+/* many more fields */
+
+
+
+#endif /* _FIELDS_H */
Index: orxonox/trunk/src/lib/physics/fields/gravity.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/gravity.cc	(revision 4338)
@@ -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(float dt, const Vector& data) const
+{
+  return /*(this->getAbsDir().apply(Vector(0,1,0)))*/ Vector(0,-1,0) * this->getMagnitude() * dt;
+}
+
+
Index: orxonox/trunk/src/lib/physics/fields/gravity.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/gravity.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/gravity.h	(revision 4338)
@@ -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(float dt, const Vector& data) const;
+
+ private:
+
+};
+
+#endif /* _GRAVITY_H */
Index: orxonox/trunk/src/lib/physics/fields/point_gravity.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/point_gravity.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/point_gravity.cc	(revision 4338)
@@ -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 "point_gravity.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+   \todo this constructor is not jet implemented - do it
+*/
+PointGravity::PointGravity () 
+{
+   this->setClassName ("PointGravity");
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+PointGravity::~PointGravity () 
+{
+  // delete what has to be deleted here
+}
+
+/**
+   \brief calculates the PointGravity on any point in space
+   \param data The Position of the Point in space to attache PointGravity to.
+   \returns The force.
+*/
+Vector PointGravity::calcForce(float dt, const Vector& data) const
+{
+  return (this->getAbsCoor() - data) * this->getMagnitude() * dt;
+}
+
+
Index: orxonox/trunk/src/lib/physics/fields/point_gravity.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/point_gravity.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/point_gravity.h	(revision 4338)
@@ -0,0 +1,29 @@
+/*! 
+    \file point_gravity.h
+    \brief Definition of ...
+
+*/
+
+#ifndef _POINT_GRAVITY_H
+#define _POINT_GRAVITY_H
+
+#include "field.h"
+
+// FORWARD DEFINITION
+
+
+
+//! A class for ...
+class PointGravity : public Field {
+
+ public:
+  PointGravity();
+  virtual ~PointGravity();
+
+  virtual Vector calcForce(float dt, const Vector& data) const;
+
+ private:
+
+};
+
+#endif /* _POINT_GRAVITY_H */
Index: orxonox/trunk/src/lib/physics/fields/twirl.cc
===================================================================
--- orxonox/trunk/src/lib/physics/fields/twirl.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/twirl.cc	(revision 4338)
@@ -0,0 +1,53 @@
+/* 
+   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 "twirl.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+   \todo this constructor is not jet implemented - do it
+*/
+Twirl::Twirl () 
+{
+   this->setClassName ("Twirl");
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+Twirl::~Twirl () 
+{
+  // delete what has to be deleted here
+}
+
+/**
+   \brief calculates the Twirl on any point in space
+   \param data The Position of the Point in space to attache twirl to.
+   \returns The force.
+*/
+Vector Twirl::calcForce(float dt, const Vector& data) const
+{
+  return /*this->getAbsDir()*/ Vector(0,1,0).cross(this->getAbsCoor() - data)
+    * this->getMagnitude() * dt;
+}
+
+
Index: orxonox/trunk/src/lib/physics/fields/twirl.h
===================================================================
--- orxonox/trunk/src/lib/physics/fields/twirl.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/fields/twirl.h	(revision 4338)
@@ -0,0 +1,29 @@
+/*! 
+    \file twirl.h
+    \brief Definition of ...
+
+*/
+
+#ifndef _TWIRL_H
+#define _TWIRL_H
+
+#include "field.h"
+
+// FORWARD DEFINITION
+
+
+
+//! A class for ...
+class Twirl : public Field {
+
+ public:
+  Twirl();
+  virtual ~Twirl();
+
+  virtual Vector calcForce(float dt, const Vector& data) const;
+
+ private:
+
+};
+
+#endif /* _TWIRL_H */
Index: orxonox/trunk/src/lib/physics/i_physics.cc
===================================================================
--- orxonox/trunk/src/lib/physics/i_physics.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/i_physics.cc	(revision 4338)
@@ -0,0 +1,92 @@
+
+
+/* 
+   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: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_PHYSICS
+
+#include "i_physics.h"
+#include "list.h"
+#include "string.h"
+#include "stdincl.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+IPhysics::IPhysics () 
+{
+   this->setClassName ("IPhysics");
+   this->mass = 0;
+   this->massChildren = 0;
+   this->forceSum = Vector(0, 0, 0);
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+IPhysics::~IPhysics () 
+{
+  // delete what has to be deleted here
+}
+
+void IPhysics::recalcMass()
+{
+	float massSum = 0;
+	
+	tIterator<PNode>* iterator = this->children->getIterator();
+	PNode* pn = iterator->nextElement();
+	while( pn != NULL) 
+    { 
+    	// todo: find out if children are IPhysics in an efficient way
+    	if (strcmp( pn->getClassName(), "IPhysics")) {
+			massSum += ((IPhysics*)pn)->getTotalMass();
+    	}
+      pn = iterator->nextElement();
+    }
+	delete iterator;
+	
+	if (massSum != this->massChildren ) {
+		this->massChildren = massSum;
+		if (strcmp( parent->getClassName(), "IPhysics"))
+			((IPhysics*)parent)->recalcMass();
+	} else {
+		this->massChildren = massSum;
+	}
+}
+	
+	
+void IPhysics::addForce( Vector force )
+{
+	forceSum += force;
+}
+
+void IPhysics::addForce(Vector force, Vector grip)
+{
+	// add central force
+	forceSum += force;
+	// add momentum
+	// todo: some vector math
+}
+	
+void IPhysics::tick( float dt )
+{
+	Vector acc = forceSum / ( massChildren + mass );
+	// todo: introduce kinematics
+}
Index: orxonox/trunk/src/lib/physics/i_physics.h
===================================================================
--- orxonox/trunk/src/lib/physics/i_physics.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/i_physics.h	(revision 4338)
@@ -0,0 +1,40 @@
+/*! 
+    \file i_physics.h
+    \brief a physics interface simulating a body with a mass
+*/
+
+#ifndef _I_PHYSICS_H
+#define _I_PHYSICS_H
+
+#include "p_node.h"
+
+//! A Physics interface
+/**
+   here can be some longer description of this class
+*/
+class IPhysics : public PNode {
+
+ public:
+  IPhysics();
+  virtual ~IPhysics();
+  
+  inline void setMass( float mass ) { this->mass = mass; };					//!< Set the mass of this node
+  inline float getMass( void ) const { return mass; };						//!< Get the mass of this node
+  inline float getTotalMass( void ) const { return mass + massChildren; };	//!< Get the sum of the masses of this node and all subnodes
+  void addForce( Vector force );									//!< Add a central force on this rigid body
+  void addForce( Vector force, Vector grip );						//!< Add a decentral force on this rigid body
+  void tick( float dt );											//!< Update kinematics, reset force sum
+
+ protected:
+  void recalcMass();		//!< Recalculate the mass of the children
+  float mass;				//!< Mass of this node
+  float massChildren;		//!< Sum of the masses of the children nodes
+  Vector forceSum;			//!< Total central force for this tick
+  Quaternion momentumSum;	//!< Total momentum in this tick
+
+ private:
+	
+
+};
+
+#endif /* _I_PHYSICS_H */
Index: orxonox/trunk/src/lib/physics/physics_connection.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_connection.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/physics_connection.cc	(revision 4338)
@@ -0,0 +1,66 @@
+/* 
+   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"
+
+#include "physics_engine.h"
+
+using namespace std;
+
+
+
+PhysicsConnection::PhysicsConnection(ParticleSystem* particleSystem, Field* field)
+{
+  this->type = PCON_ParticlesField;
+  this->particleSystem = particleSystem;
+  this->field = field;
+
+  PhysicsEngine::getInstance()->addConnection(this);
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+PhysicsConnection::~PhysicsConnection () 
+{
+  PhysicsEngine::getInstance()->removeConnection(this);
+}
+
+/** 
+    \brief applies the Force to some Object.
+    \param dt The time to apply in Seconds
+*/
+void PhysicsConnection::apply(const float& dt) const
+{
+  switch(this->type)
+    {
+    case PCON_IPhysField:
+      
+      break;
+
+    case PCON_ParticlesField:
+      this->particleSystem->applyField(dt, this->field);
+
+      break;
+      
+    case PCON_IPhysIPhys:
+
+      break;
+    }
+}
Index: orxonox/trunk/src/lib/physics/physics_connection.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_connection.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/physics_connection.h	(revision 4338)
@@ -0,0 +1,44 @@
+/*! 
+    \file physics_connection.h
+    \brief Definition of The Physical Connection Class.
+*/
+
+#ifndef _PHYSICS_CONNECTION_H 
+#define _PHYSICS_CONNECTION_H
+
+#include "field.h"
+#include "particle_system.h"
+#include "i_physics.h"
+
+//! An enumerator for different ConnectionTypes
+typedef enum PCON_Type { PCON_IPhysIPhys = 0,
+			 PCON_IPhysField = 1,
+			 PCON_ParticlesField = 2 };
+
+
+// Forward Declaration
+
+//! A class that Handles Physical Connection between subjects
+class PhysicsConnection {
+
+ public:
+  PhysicsConnection(IPhysics* partnerOne, IPhysics* partnerTwo);
+  PhysicsConnection(IPhysics* subject, Field* field);
+  PhysicsConnection(ParticleSystem* particleSystem, Field* field);
+
+  virtual ~PhysicsConnection();
+
+  void apply(const float& dt) const;
+
+ private:
+  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.
+};
+
+#endif /* _PHYSICS_CONNECTION_H */
Index: orxonox/trunk/src/lib/physics/physics_engine.cc
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4338)
+++ orxonox/trunk/src/lib/physics/physics_engine.cc	(revision 4338)
@@ -0,0 +1,101 @@
+/* 
+   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_WORLD_ENTITY
+
+#include "physics_engine.h"
+
+#include "list.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+PhysicsEngine::PhysicsEngine() 
+{
+   this->setClassName ("PhysicsEngine");
+
+   this->connections = new tList<PhysicsConnection>;
+}
+
+/**
+   \brief the singleton reference to this class
+*/
+PhysicsEngine* PhysicsEngine::singletonRef = NULL;
+
+/**
+   \returns a Pointer to this Class
+*/
+PhysicsEngine* PhysicsEngine::getInstance(void)
+{
+  if (!PhysicsEngine::singletonRef)
+    PhysicsEngine::singletonRef = new PhysicsEngine();
+  return PhysicsEngine::singletonRef;
+}
+
+/**
+   \brief standard deconstructor
+
+*/
+PhysicsEngine::~PhysicsEngine () 
+{
+  PhysicsEngine::singletonRef = NULL;
+}
+
+/**
+   \brief adds A Physical Connection to the List of Connections
+   \param connection the Connection to add
+   
+   Usually this is done through the constructor of PhysicshConnections
+*/
+void PhysicsEngine::addConnection(PhysicsConnection* connection)
+{
+  this->connections->add(connection);
+}
+
+/**
+   \brief removes A Physical Connection from the List of Connections
+   \param connection the Connection to remove
+   
+   Usually this is done through the destructor of PhysicsConnections
+*/
+void PhysicsEngine::removeConnection(PhysicsConnection* connection)
+{
+  this->connections->remove(connection);
+}
+
+
+
+
+
+/**
+   \brief Steps through all the Connections and Ticks them
+   \param dt The time Passed in Seconds
+
+   This function brings a flow into the whole animation
+*/
+void PhysicsEngine::tick(float dt)
+{
+  tIterator<PhysicsConnection>* iterator = this->connections->getIterator();
+  PhysicsConnection* enumConn = iterator->nextElement();
+  while (enumConn)
+    {
+      enumConn->apply(dt);
+      enumConn = iterator->nextElement();
+    }
+  delete iterator;
+}
Index: orxonox/trunk/src/lib/physics/physics_engine.h
===================================================================
--- orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4338)
+++ orxonox/trunk/src/lib/physics/physics_engine.h	(revision 4338)
@@ -0,0 +1,41 @@
+/*! 
+    \file physics_engine.h
+    \brief Definition of the ... singleton Class
+    
+*/
+
+#ifndef _PHYSICS_ENGINE_H
+#define _PHYSICS_ENGINE_H
+
+#include "base_object.h"
+#include "physics_connection.h"
+#include "fields.h"
+
+// Forward Declaration
+template<class T> class tList;
+
+
+//! A default singleton class.
+class PhysicsEngine : public BaseObject {
+
+ public:
+  static PhysicsEngine* getInstance(void);
+  virtual ~PhysicsEngine(void);
+
+  void addConnection(PhysicsConnection* connection);
+  void removeConnection(PhysicsConnection* connection);
+
+  void tick(float dt);
+
+ private:
+  PhysicsEngine(void);
+  static PhysicsEngine* singletonRef;
+
+  tList<PhysicsConnection>* connections;
+
+  
+};
+
+
+
+#endif /* _PHYSICS_ENGINE_H */
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 4329)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 4338)
@@ -45,4 +45,5 @@
 #include "particle_engine.h"
 #include "graphics_engine.h"
+#include "physics_engine.h"
 
 #include "command_node.h"
@@ -279,4 +280,5 @@
 
   AnimationPlayer::getInstance(); // initializes the animationPlayer
+  PhysicsEngine::getInstance();
 
   this->localCamera = new Camera();
@@ -453,15 +455,15 @@
 
 
-
-  ParticleSystem* system = new ParticleSystem(1000, PARTICLE_SPRITE);
-  system->setLifeSpan(.5);
-  system->setConserve(.99);
-  system->setRadius(2, 0, 2, 0);
-
-  ParticleEmitter* emitter = new ParticleEmitter(Vector(-1, 0, 0), M_PI_4, 100, .05);
-  emitter->setParent(this->localPlayer);
-  
-  particleEngine->addConnection(emitter, system);
-
+  /*
+    ParticleSystem* system = new ParticleSystem(1000, PARTICLE_SPRITE);
+    system->setLifeSpan(.5);
+    system->setConserve(.99);
+    system->setRadius(2, 0, 2, 0);
+    
+    ParticleEmitter* emitter = new ParticleEmitter(Vector(-1, 0, 0), M_PI_4, 100, .05);
+    emitter->setParent(this->localPlayer);
+    
+    particleEngine->addConnection(emitter, system);
+  */
   WorldEntity* testEntity = new TestEntity();
   //testEntity->setRelCoor(Vector(570, 10, -15));
Index: orxonox/trunk/src/story_entities/world.h
===================================================================
--- orxonox/trunk/src/story_entities/world.h	(revision 4329)
+++ orxonox/trunk/src/story_entities/world.h	(revision 4338)
@@ -37,4 +37,5 @@
   static WorldInterface* getInstance();
   void init(World* world);
+  inline World* getCurrentWorld(void) {return this->worldReference;}
   tList<WorldEntity>* getEntityList();
 
@@ -93,4 +94,6 @@
   void setPath( const char* name);
 
+  inline Camera* getLocalCamera(void) {return this->localCamera;}
+
  private:
   void constuctorInit(char* name, int worldID);
Index: orxonox/trunk/src/subprojects/Makefile.am
===================================================================
--- orxonox/trunk/src/subprojects/Makefile.am	(revision 4329)
+++ orxonox/trunk/src/subprojects/Makefile.am	(revision 4338)
@@ -1,3 +1,10 @@
 SUBDIRS = importer \
+	  particles \
 	  gui \
 	  testmain
+
+noinst_HEADERS = framework.h
+
+
+EXTRA_DIST = framework.cc
+
Index: orxonox/trunk/src/subprojects/Makefile.in
===================================================================
--- orxonox/trunk/src/subprojects/Makefile.in	(revision 4329)
+++ orxonox/trunk/src/subprojects/Makefile.in	(revision 4338)
@@ -14,4 +14,5 @@
 
 @SET_MAKE@
+
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -36,5 +37,6 @@
 host_triplet = @host@
 subdir = src/subprojects
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -52,4 +54,5 @@
 	pdf-recursive ps-recursive uninstall-info-recursive \
 	uninstall-recursive
+HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -165,7 +168,10 @@
 target_vendor = @target_vendor@
 SUBDIRS = importer \
+	  particles \
 	  gui \
 	  testmain
 
+noinst_HEADERS = framework.h
+EXTRA_DIST = framework.cc
 all: all-recursive
 
@@ -364,5 +370,5 @@
 check-am: all-am
 check: check-recursive
-all-am: Makefile
+all-am: Makefile $(HEADERS)
 installdirs: installdirs-recursive
 installdirs-am:
Index: orxonox/trunk/src/subprojects/framework.cc
===================================================================
--- orxonox/trunk/src/subprojects/framework.cc	(revision 4338)
+++ orxonox/trunk/src/subprojects/framework.cc	(revision 4338)
@@ -0,0 +1,264 @@
+/* 
+   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: ...
+*/
+
+#include "framework.h"
+
+
+#include "p_node.h"
+#include "null_parent.h"
+#include "state.h"
+#include "debug.h"
+#include "graphics_engine.h"
+#include "light.h"
+#include "resource_manager.h"
+#include "camera.h"
+
+
+int verbose;
+
+void* Framework::mainLoop(void* tmp)
+{
+  Framework* framework = Framework::getInstance();
+  while(!framework->isFinished)
+    {
+      while(gtk_events_pending()) 
+	gtk_main_iteration();
+
+      // keyhandler returns false if sdl gets quit by some event
+      framework->eventHandler();
+
+      // tick the scene
+      float dt = framework->tick();
+
+      NullParent::getInstance()->update(dt);
+
+      // Draw the scene
+      framework->draw(dt);
+
+    }
+}
+
+bool Framework::draw(float dt)
+{
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+  glLoadIdentity(); // Reset the view
+  
+  this->moduleDraw(dt);
+  
+  camera->apply();
+  
+  SDL_GL_SwapBuffers(); // Swap the buffers
+}
+
+
+float Framework::tick()
+{
+  currFrame = SDL_GetTicks();
+  float dt = (float)(currFrame - lastFrame) / 1000.0;
+  lastFrame = currFrame;
+
+  this->moduleTick(dt);
+
+  return dt;
+}
+
+
+bool Framework::eventHandler()
+{
+  // This is the main loop for the entire program and it will run until done==TRUE
+  {
+    // And poll for events
+    SDL_Event event;
+    while(SDL_PollEvent(&event))
+    {
+      moduleEventHandler(&event);
+
+      switch (event.type) {
+      case SDL_MOUSEMOTION:
+	{
+	  Vector view = camera->getTarget()->getAbsCoor() - camera->getAbsCoor();
+	  Vector up = Vector(0, 1, 0);
+	  up = camera->getAbsDir().apply(up);
+	  Vector h = up.cross(view);
+	  Vector v = h.cross(view);
+	  h.normalize();
+	  v.normalize();
+
+	  if (mouseDown[1])
+	    camera->setRelCoor(camera->getRelCoor()+ h * event.motion.xrel *.05 - v * event.motion.yrel * .05);
+	  if (mouseDown[3])
+	    camera->getTarget()->setRelCoor(camera->getTarget()->getRelCoor()+ h * event.motion.xrel *.05 - v * event.motion.yrel * .05);
+	    
+	}
+	break;
+      case SDL_MOUSEBUTTONDOWN:
+	switch (event.button.button)
+	  {
+	  case 4:
+	    PRINTF(4)("MouseWheel up\n");
+	    camera->setRelCoor(camera->getRelCoor() + (camera->getTarget()->getAbsCoor() - camera->getAbsCoor())*.1);
+	    break;
+	  case 5:
+	    PRINTF(4)("MouseWheel down\n");
+	    camera->setRelCoor(camera->getRelCoor() - (camera->getTarget()->getAbsCoor() - camera->getAbsCoor())*.1);
+	    break;
+	  case 1:
+	  case 2:
+	  case 3:
+	    mouseDown[event.button.button] = true;
+	    break;
+	  }
+	    
+	break;
+      case SDL_MOUSEBUTTONUP:
+	switch (event.button.button)
+	  {
+	  case 1:
+	  case 2:
+	  case 3:
+	    mouseDown[event.button.button] = false;
+	    break;
+	  }
+	break;
+      case SDL_VIDEORESIZE:
+	GraphicsEngine::getInstance()->resolutionChanged(&event.resize);
+	break;
+      case SDL_KEYDOWN:
+	switch (event.key.keysym.sym)
+	  {
+	  case SDLK_q:
+	  case SDLK_ESCAPE:
+	    quitGui(NULL, NULL);
+	    break;
+	  case SDLK_a:
+	    camera->setRelCoor(camera->getRelCoor() + (camera->getTarget()->getAbsCoor() - camera->getAbsCoor())*.1);
+	    break;
+	  case SDLK_z:
+	    camera->setRelCoor(camera->getRelCoor() - (camera->getTarget()->getAbsCoor() - camera->getAbsCoor())*.1);
+	    break;
+	  case SDLK_h:
+	    this->printHelp();
+	    break;
+	  }
+	break;
+	    
+        // If a quit event was recieved
+      case SDL_QUIT:
+	// then we're done and we'll end this program
+	quitGui(NULL, NULL);
+	break;
+      default:
+	break;
+      }
+
+    }
+
+    // Get the state of the keyboard keys
+    keys = SDL_GetKeyState(NULL);
+
+    // and check if ESCAPE has been pressed. If so then quit
+    if(keys[SDLK_ESCAPE]) return false;
+  }
+  return true;
+}
+
+void Framework::quit(void)
+{
+  this->isFinished = true;
+}
+
+Framework* Framework::singletonRef = NULL;
+
+Framework* Framework::getInstance(void)
+{
+  if (Framework::singletonRef == NULL)
+    Framework::singletonRef = new Framework();
+  return Framework::singletonRef;
+}
+
+Framework::Framework()
+{
+  this->isFinished = false;
+
+  this->lastFrame = 0;
+  // Create a new OpenGL window with the title "Cone3D Basecode" at
+  // 640x480x32, fullscreen and check for errors along the way
+  GraphicsEngine::getInstance();
+
+  LightManager::getInstance();
+  glEnable(GL_TEXTURE_2D);
+
+  // Build the font from a TGA image font.tga in the data directory
+  // Hide the mouse cursor
+  SDL_ShowCursor(2);
+
+  for (int i = 0; i <MOUSE_BUTTON_COUNT; i++)
+    mouseDown[i] = false;
+
+  ResourceManager::getInstance()->setDataDir(DATA_DIRECTORY);
+ 
+
+  moduleInit();
+
+  camera = new Camera();
+
+  State::getInstance()->setCamera(camera, camera->getTarget());
+
+  camera->setAbsCoor(Vector(10, 10, 0));
+}
+
+Framework::~Framework()
+{
+  delete GraphicsEngine::getInstance();
+
+}
+
+
+
+void Framework::printHelp(void) const
+{
+  PRINT(0)(" Help for the frameWork\n");
+  PRINT(0)("========================\n");
+  PRINT(0)("h - print thisHelp\n");
+
+  this->moduleHelp();
+
+}
+
+int quitGui(GtkWidget* widget, void* data)
+{
+#ifdef HAVE_GTK2
+  while(gtk_events_pending()) gtk_main_iteration();
+  Framework::getInstance()->quit();
+#endif /* HAVE_GTK2 */
+}
+
+
+int main(int argc, char *argv[])
+{
+  verbose = 3;
+  
+  Framework* framework = Framework::getInstance();
+
+  framework->moduleInitGui();
+  //  framework->mainloopGui(NULL);
+
+  framework->mainLoop(NULL);
+
+  delete framework;
+  // Kill the GL & SDL screens
+  // And quit
+  return 0;
+}
Index: orxonox/trunk/src/subprojects/framework.h
===================================================================
--- orxonox/trunk/src/subprojects/framework.h	(revision 4338)
+++ orxonox/trunk/src/subprojects/framework.h	(revision 4338)
@@ -0,0 +1,63 @@
+#ifndef _FRAMEWORK_H
+#define _FRAMEWORK_H
+ 
+#include "vector.h"
+#include "glincl.h"
+#include "SDL_events.h"
+
+#include "gui_gtk.h"
+
+
+#define DATA_DIRECTORY "~/svn/data/"
+#define MOUSE_BUTTON_COUNT 8
+
+class Camera;
+
+class Framework {
+ private:
+  Framework();
+  static Framework* singletonRef;
+  
+  Camera* camera;
+  
+  bool isFinished;
+
+  int movement [4];
+  
+  Uint32 lastFrame;
+  Uint32 currFrame;
+    
+  Uint8* keys;        // This variable will be used in the keyboard routine
+  bool mouseDown[MOUSE_BUTTON_COUNT];
+
+ public:
+  ~Framework(); 
+  
+  static Framework* getInstance(void);
+
+
+  void moduleInit();
+  void moduleInitGui(void);
+  void moduleEventHandler(SDL_Event* event);
+  void moduleTick(float dt);
+  void moduleDraw(float dt);
+  
+  void moduleHelp(void) const;
+
+
+
+  static void* mainLoop(void* tmp);
+  bool draw(float dt);
+  float tick();
+  bool eventHandler();
+  void quit();
+
+  static void* mainloopGui(void* tmp);
+
+  void printHelp(void) const;
+};
+
+int quitGui(GtkWidget* widget, void* data);
+
+
+#endif /* _FRAMEWORK_H */
Index: orxonox/trunk/src/subprojects/importer/Makefile.am
===================================================================
--- orxonox/trunk/src/subprojects/importer/Makefile.am	(revision 4329)
+++ orxonox/trunk/src/subprojects/importer/Makefile.am	(revision 4338)
@@ -48,4 +48,4 @@
 		  $(MAINSRCDIR)/lib/coord/null_parent.cc
 
-noinst_HEADERS = framework.h \
-		 windowHandler.h
+noinst_HEADERS = framework.h
+
Index: orxonox/trunk/src/subprojects/importer/Makefile.in
===================================================================
--- orxonox/trunk/src/subprojects/importer/Makefile.in	(revision 4329)
+++ orxonox/trunk/src/subprojects/importer/Makefile.in	(revision 4338)
@@ -212,7 +212,5 @@
 		  $(MAINSRCDIR)/lib/coord/null_parent.cc
 
-noinst_HEADERS = framework.h \
-		 windowHandler.h
-
+noinst_HEADERS = framework.h
 all: all-am
 
Index: orxonox/trunk/src/subprojects/particles/Makefile.am
===================================================================
--- orxonox/trunk/src/subprojects/particles/Makefile.am	(revision 4338)
+++ orxonox/trunk/src/subprojects/particles/Makefile.am	(revision 4338)
@@ -0,0 +1,61 @@
+MAINSRCDIR=../..
+AM_CXXFLAGS=-I$(MAINSRCDIR)
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/world_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/story_entities
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/coord
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/data
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/importer
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/graphics/particles
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/gui/gui
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/lang
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/math
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/physics/fields
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/tinyxml
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/font
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/network
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/glmenu
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/ai
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/animation
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/common
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/loading
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track
+AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects
+
+
+bin_PROGRAMS = particles
+
+particles_LDADD = $(MAINSRCDIR)/lib/physics/libORXphysics.a \
+                  $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) \
+		  -lpthread
+
+particles_CPPFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+
+particles_SOURCES= ../framework.cc \
+		   particle_fun.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_system.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc \
+		  $(MAINSRCDIR)/lib/graphics/light.cc \
+		  $(MAINSRCDIR)/util/state.cc \
+		  $(MAINSRCDIR)/world_entities/camera.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+		  $(MAINSRCDIR)/lib/lang/base_object.cc \
+		  $(MAINSRCDIR)/lib/math/vector.cc \
+		  $(MAINSRCDIR)/util/resource_manager.cc \
+		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+		  $(MAINSRCDIR)/lib/coord/p_node.cc \
+		  $(MAINSRCDIR)/lib/coord/null_parent.cc \
+		  $(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc
Index: orxonox/trunk/src/subprojects/particles/Makefile.in
===================================================================
--- orxonox/trunk/src/subprojects/particles/Makefile.in	(revision 4338)
+++ orxonox/trunk/src/subprojects/particles/Makefile.in	(revision 4338)
@@ -0,0 +1,870 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+SOURCES = $(particles_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+bin_PROGRAMS = particles$(EXEEXT)
+subdir = src/subprojects/particles
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_particles_OBJECTS = particles-framework.$(OBJEXT) \
+	particles-particle_fun.$(OBJEXT) \
+	particles-particle_engine.$(OBJEXT) \
+	particles-particle_system.$(OBJEXT) \
+	particles-particle_emitter.$(OBJEXT) particles-light.$(OBJEXT) \
+	particles-state.$(OBJEXT) particles-camera.$(OBJEXT) \
+	particles-model.$(OBJEXT) particles-objModel.$(OBJEXT) \
+	particles-primitive_model.$(OBJEXT) particles-array.$(OBJEXT) \
+	particles-material.$(OBJEXT) particles-texture.$(OBJEXT) \
+	particles-graphics_engine.$(OBJEXT) \
+	particles-base_object.$(OBJEXT) particles-vector.$(OBJEXT) \
+	particles-resource_manager.$(OBJEXT) \
+	particles-text_engine.$(OBJEXT) particles-p_node.$(OBJEXT) \
+	particles-null_parent.$(OBJEXT) particles-gui_gtk.$(OBJEXT)
+particles_OBJECTS = $(am_particles_OBJECTS)
+am__DEPENDENCIES_1 =
+particles_DEPENDENCIES = $(MAINSRCDIR)/lib/physics/libORXphysics.a \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/particles-array.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-base_object.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-camera.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-framework.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-graphics_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-gui_gtk.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-light.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-material.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-null_parent.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-objModel.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-p_node.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-particle_emitter.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-particle_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-particle_fun.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-particle_system.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-primitive_model.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-resource_manager.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-state.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-text_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-texture.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/particles-vector.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(particles_SOURCES)
+DIST_SOURCES = $(particles_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+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)/lib/physics -I$(MAINSRCDIR)/lib/physics/fields -I$(MAINSRCDIR)/lib/tinyxml -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/loading -I$(MAINSRCDIR)/util/track -I$(MAINSRCDIR)/subprojects
+particles_LDADD = $(MAINSRCDIR)/lib/physics/libORXphysics.a \
+                  $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) \
+		  -lpthread
+
+particles_CPPFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS)
+particles_SOURCES = ../framework.cc \
+		   particle_fun.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_system.cc \
+		  $(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc \
+		  $(MAINSRCDIR)/lib/graphics/light.cc \
+		  $(MAINSRCDIR)/util/state.cc \
+		  $(MAINSRCDIR)/world_entities/camera.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/model.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/objModel.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/array.cc \
+	  	  $(MAINSRCDIR)/lib/graphics/importer/material.cc \
+		  $(MAINSRCDIR)/lib/graphics/importer/texture.cc \
+		  $(MAINSRCDIR)/lib/graphics/graphics_engine.cc \
+		  $(MAINSRCDIR)/lib/lang/base_object.cc \
+		  $(MAINSRCDIR)/lib/math/vector.cc \
+		  $(MAINSRCDIR)/util/resource_manager.cc \
+		  $(MAINSRCDIR)/lib/graphics/text_engine.cc \
+		  $(MAINSRCDIR)/lib/coord/p_node.cc \
+		  $(MAINSRCDIR)/lib/coord/null_parent.cc \
+		  $(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/subprojects/particles/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/subprojects/particles/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+particles$(EXEEXT): $(particles_OBJECTS) $(particles_DEPENDENCIES) 
+	@rm -f particles$(EXEEXT)
+	$(CXXLINK) $(particles_LDFLAGS) $(particles_OBJECTS) $(particles_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-array.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-base_object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-camera.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-framework.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-graphics_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-gui_gtk.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-light.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-material.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-null_parent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-objModel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-p_node.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-particle_emitter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-particle_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-particle_fun.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-particle_system.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-primitive_model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-resource_manager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-state.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-text_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-texture.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/particles-vector.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+particles-framework.o: ../framework.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-framework.o -MD -MP -MF "$(DEPDIR)/particles-framework.Tpo" -c -o particles-framework.o `test -f '../framework.cc' || echo '$(srcdir)/'`../framework.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-framework.Tpo" "$(DEPDIR)/particles-framework.Po"; else rm -f "$(DEPDIR)/particles-framework.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='../framework.cc' object='particles-framework.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-framework.Po' tmpdepfile='$(DEPDIR)/particles-framework.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-framework.o `test -f '../framework.cc' || echo '$(srcdir)/'`../framework.cc
+
+particles-framework.obj: ../framework.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-framework.obj -MD -MP -MF "$(DEPDIR)/particles-framework.Tpo" -c -o particles-framework.obj `if test -f '../framework.cc'; then $(CYGPATH_W) '../framework.cc'; else $(CYGPATH_W) '$(srcdir)/../framework.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-framework.Tpo" "$(DEPDIR)/particles-framework.Po"; else rm -f "$(DEPDIR)/particles-framework.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='../framework.cc' object='particles-framework.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-framework.Po' tmpdepfile='$(DEPDIR)/particles-framework.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-framework.obj `if test -f '../framework.cc'; then $(CYGPATH_W) '../framework.cc'; else $(CYGPATH_W) '$(srcdir)/../framework.cc'; fi`
+
+particles-particle_fun.o: particle_fun.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_fun.o -MD -MP -MF "$(DEPDIR)/particles-particle_fun.Tpo" -c -o particles-particle_fun.o `test -f 'particle_fun.cc' || echo '$(srcdir)/'`particle_fun.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_fun.Tpo" "$(DEPDIR)/particles-particle_fun.Po"; else rm -f "$(DEPDIR)/particles-particle_fun.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='particle_fun.cc' object='particles-particle_fun.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_fun.Po' tmpdepfile='$(DEPDIR)/particles-particle_fun.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_fun.o `test -f 'particle_fun.cc' || echo '$(srcdir)/'`particle_fun.cc
+
+particles-particle_fun.obj: particle_fun.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_fun.obj -MD -MP -MF "$(DEPDIR)/particles-particle_fun.Tpo" -c -o particles-particle_fun.obj `if test -f 'particle_fun.cc'; then $(CYGPATH_W) 'particle_fun.cc'; else $(CYGPATH_W) '$(srcdir)/particle_fun.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_fun.Tpo" "$(DEPDIR)/particles-particle_fun.Po"; else rm -f "$(DEPDIR)/particles-particle_fun.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='particle_fun.cc' object='particles-particle_fun.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_fun.Po' tmpdepfile='$(DEPDIR)/particles-particle_fun.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_fun.obj `if test -f 'particle_fun.cc'; then $(CYGPATH_W) 'particle_fun.cc'; else $(CYGPATH_W) '$(srcdir)/particle_fun.cc'; fi`
+
+particles-particle_engine.o: $(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_engine.o -MD -MP -MF "$(DEPDIR)/particles-particle_engine.Tpo" -c -o particles-particle_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_engine.Tpo" "$(DEPDIR)/particles-particle_engine.Po"; else rm -f "$(DEPDIR)/particles-particle_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc' object='particles-particle_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_engine.Po' tmpdepfile='$(DEPDIR)/particles-particle_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc
+
+particles-particle_engine.obj: $(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_engine.obj -MD -MP -MF "$(DEPDIR)/particles-particle_engine.Tpo" -c -o particles-particle_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_engine.Tpo" "$(DEPDIR)/particles-particle_engine.Po"; else rm -f "$(DEPDIR)/particles-particle_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc' object='particles-particle_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_engine.Po' tmpdepfile='$(DEPDIR)/particles-particle_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_engine.cc'; fi`
+
+particles-particle_system.o: $(MAINSRCDIR)/lib/graphics/particles/particle_system.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_system.o -MD -MP -MF "$(DEPDIR)/particles-particle_system.Tpo" -c -o particles-particle_system.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_system.Tpo" "$(DEPDIR)/particles-particle_system.Po"; else rm -f "$(DEPDIR)/particles-particle_system.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc' object='particles-particle_system.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_system.Po' tmpdepfile='$(DEPDIR)/particles-particle_system.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_system.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc
+
+particles-particle_system.obj: $(MAINSRCDIR)/lib/graphics/particles/particle_system.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_system.obj -MD -MP -MF "$(DEPDIR)/particles-particle_system.Tpo" -c -o particles-particle_system.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_system.Tpo" "$(DEPDIR)/particles-particle_system.Po"; else rm -f "$(DEPDIR)/particles-particle_system.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc' object='particles-particle_system.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_system.Po' tmpdepfile='$(DEPDIR)/particles-particle_system.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_system.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_system.cc'; fi`
+
+particles-particle_emitter.o: $(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_emitter.o -MD -MP -MF "$(DEPDIR)/particles-particle_emitter.Tpo" -c -o particles-particle_emitter.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_emitter.Tpo" "$(DEPDIR)/particles-particle_emitter.Po"; else rm -f "$(DEPDIR)/particles-particle_emitter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc' object='particles-particle_emitter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_emitter.Po' tmpdepfile='$(DEPDIR)/particles-particle_emitter.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_emitter.o `test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc
+
+particles-particle_emitter.obj: $(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-particle_emitter.obj -MD -MP -MF "$(DEPDIR)/particles-particle_emitter.Tpo" -c -o particles-particle_emitter.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-particle_emitter.Tpo" "$(DEPDIR)/particles-particle_emitter.Po"; else rm -f "$(DEPDIR)/particles-particle_emitter.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc' object='particles-particle_emitter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-particle_emitter.Po' tmpdepfile='$(DEPDIR)/particles-particle_emitter.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-particle_emitter.obj `if test -f '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/particles/particle_emitter.cc'; fi`
+
+particles-light.o: $(MAINSRCDIR)/lib/graphics/light.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-light.o -MD -MP -MF "$(DEPDIR)/particles-light.Tpo" -c -o particles-light.o `test -f '$(MAINSRCDIR)/lib/graphics/light.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/light.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-light.Tpo" "$(DEPDIR)/particles-light.Po"; else rm -f "$(DEPDIR)/particles-light.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/light.cc' object='particles-light.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-light.Po' tmpdepfile='$(DEPDIR)/particles-light.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-light.o `test -f '$(MAINSRCDIR)/lib/graphics/light.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/light.cc
+
+particles-light.obj: $(MAINSRCDIR)/lib/graphics/light.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-light.obj -MD -MP -MF "$(DEPDIR)/particles-light.Tpo" -c -o particles-light.obj `if test -f '$(MAINSRCDIR)/lib/graphics/light.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/light.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/light.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-light.Tpo" "$(DEPDIR)/particles-light.Po"; else rm -f "$(DEPDIR)/particles-light.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/light.cc' object='particles-light.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-light.Po' tmpdepfile='$(DEPDIR)/particles-light.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-light.obj `if test -f '$(MAINSRCDIR)/lib/graphics/light.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/light.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/light.cc'; fi`
+
+particles-state.o: $(MAINSRCDIR)/util/state.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-state.o -MD -MP -MF "$(DEPDIR)/particles-state.Tpo" -c -o particles-state.o `test -f '$(MAINSRCDIR)/util/state.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/state.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-state.Tpo" "$(DEPDIR)/particles-state.Po"; else rm -f "$(DEPDIR)/particles-state.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/state.cc' object='particles-state.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-state.Po' tmpdepfile='$(DEPDIR)/particles-state.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-state.o `test -f '$(MAINSRCDIR)/util/state.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/state.cc
+
+particles-state.obj: $(MAINSRCDIR)/util/state.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-state.obj -MD -MP -MF "$(DEPDIR)/particles-state.Tpo" -c -o particles-state.obj `if test -f '$(MAINSRCDIR)/util/state.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/state.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/state.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-state.Tpo" "$(DEPDIR)/particles-state.Po"; else rm -f "$(DEPDIR)/particles-state.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/state.cc' object='particles-state.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-state.Po' tmpdepfile='$(DEPDIR)/particles-state.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-state.obj `if test -f '$(MAINSRCDIR)/util/state.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/state.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/state.cc'; fi`
+
+particles-camera.o: $(MAINSRCDIR)/world_entities/camera.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-camera.o -MD -MP -MF "$(DEPDIR)/particles-camera.Tpo" -c -o particles-camera.o `test -f '$(MAINSRCDIR)/world_entities/camera.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/world_entities/camera.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-camera.Tpo" "$(DEPDIR)/particles-camera.Po"; else rm -f "$(DEPDIR)/particles-camera.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/world_entities/camera.cc' object='particles-camera.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-camera.Po' tmpdepfile='$(DEPDIR)/particles-camera.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-camera.o `test -f '$(MAINSRCDIR)/world_entities/camera.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/world_entities/camera.cc
+
+particles-camera.obj: $(MAINSRCDIR)/world_entities/camera.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-camera.obj -MD -MP -MF "$(DEPDIR)/particles-camera.Tpo" -c -o particles-camera.obj `if test -f '$(MAINSRCDIR)/world_entities/camera.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/world_entities/camera.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/world_entities/camera.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-camera.Tpo" "$(DEPDIR)/particles-camera.Po"; else rm -f "$(DEPDIR)/particles-camera.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/world_entities/camera.cc' object='particles-camera.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-camera.Po' tmpdepfile='$(DEPDIR)/particles-camera.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-camera.obj `if test -f '$(MAINSRCDIR)/world_entities/camera.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/world_entities/camera.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/world_entities/camera.cc'; fi`
+
+particles-model.o: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-model.o -MD -MP -MF "$(DEPDIR)/particles-model.Tpo" -c -o particles-model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-model.Tpo" "$(DEPDIR)/particles-model.Po"; else rm -f "$(DEPDIR)/particles-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='particles-model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-model.Po' tmpdepfile='$(DEPDIR)/particles-model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/model.cc
+
+particles-model.obj: $(MAINSRCDIR)/lib/graphics/importer/model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-model.obj -MD -MP -MF "$(DEPDIR)/particles-model.Tpo" -c -o particles-model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-model.Tpo" "$(DEPDIR)/particles-model.Po"; else rm -f "$(DEPDIR)/particles-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/model.cc' object='particles-model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-model.Po' tmpdepfile='$(DEPDIR)/particles-model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/model.cc'; fi`
+
+particles-objModel.o: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-objModel.o -MD -MP -MF "$(DEPDIR)/particles-objModel.Tpo" -c -o particles-objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-objModel.Tpo" "$(DEPDIR)/particles-objModel.Po"; else rm -f "$(DEPDIR)/particles-objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='particles-objModel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-objModel.Po' tmpdepfile='$(DEPDIR)/particles-objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-objModel.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+
+particles-objModel.obj: $(MAINSRCDIR)/lib/graphics/importer/objModel.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-objModel.obj -MD -MP -MF "$(DEPDIR)/particles-objModel.Tpo" -c -o particles-objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-objModel.Tpo" "$(DEPDIR)/particles-objModel.Po"; else rm -f "$(DEPDIR)/particles-objModel.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/objModel.cc' object='particles-objModel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-objModel.Po' tmpdepfile='$(DEPDIR)/particles-objModel.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-objModel.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/objModel.cc'; fi`
+
+particles-primitive_model.o: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-primitive_model.o -MD -MP -MF "$(DEPDIR)/particles-primitive_model.Tpo" -c -o particles-primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-primitive_model.Tpo" "$(DEPDIR)/particles-primitive_model.Po"; else rm -f "$(DEPDIR)/particles-primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='particles-primitive_model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-primitive_model.Po' tmpdepfile='$(DEPDIR)/particles-primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-primitive_model.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+
+particles-primitive_model.obj: $(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-primitive_model.obj -MD -MP -MF "$(DEPDIR)/particles-primitive_model.Tpo" -c -o particles-primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-primitive_model.Tpo" "$(DEPDIR)/particles-primitive_model.Po"; else rm -f "$(DEPDIR)/particles-primitive_model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc' object='particles-primitive_model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-primitive_model.Po' tmpdepfile='$(DEPDIR)/particles-primitive_model.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-primitive_model.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/primitive_model.cc'; fi`
+
+particles-array.o: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-array.o -MD -MP -MF "$(DEPDIR)/particles-array.Tpo" -c -o particles-array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-array.Tpo" "$(DEPDIR)/particles-array.Po"; else rm -f "$(DEPDIR)/particles-array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='particles-array.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-array.Po' tmpdepfile='$(DEPDIR)/particles-array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-array.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/array.cc
+
+particles-array.obj: $(MAINSRCDIR)/lib/graphics/importer/array.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-array.obj -MD -MP -MF "$(DEPDIR)/particles-array.Tpo" -c -o particles-array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-array.Tpo" "$(DEPDIR)/particles-array.Po"; else rm -f "$(DEPDIR)/particles-array.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/array.cc' object='particles-array.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-array.Po' tmpdepfile='$(DEPDIR)/particles-array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-array.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/array.cc'; fi`
+
+particles-material.o: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-material.o -MD -MP -MF "$(DEPDIR)/particles-material.Tpo" -c -o particles-material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-material.Tpo" "$(DEPDIR)/particles-material.Po"; else rm -f "$(DEPDIR)/particles-material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='particles-material.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-material.Po' tmpdepfile='$(DEPDIR)/particles-material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-material.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/material.cc
+
+particles-material.obj: $(MAINSRCDIR)/lib/graphics/importer/material.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-material.obj -MD -MP -MF "$(DEPDIR)/particles-material.Tpo" -c -o particles-material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-material.Tpo" "$(DEPDIR)/particles-material.Po"; else rm -f "$(DEPDIR)/particles-material.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/material.cc' object='particles-material.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-material.Po' tmpdepfile='$(DEPDIR)/particles-material.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-material.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/material.cc'; fi`
+
+particles-texture.o: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-texture.o -MD -MP -MF "$(DEPDIR)/particles-texture.Tpo" -c -o particles-texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-texture.Tpo" "$(DEPDIR)/particles-texture.Po"; else rm -f "$(DEPDIR)/particles-texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='particles-texture.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-texture.Po' tmpdepfile='$(DEPDIR)/particles-texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-texture.o `test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/importer/texture.cc
+
+particles-texture.obj: $(MAINSRCDIR)/lib/graphics/importer/texture.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-texture.obj -MD -MP -MF "$(DEPDIR)/particles-texture.Tpo" -c -o particles-texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-texture.Tpo" "$(DEPDIR)/particles-texture.Po"; else rm -f "$(DEPDIR)/particles-texture.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/importer/texture.cc' object='particles-texture.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-texture.Po' tmpdepfile='$(DEPDIR)/particles-texture.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-texture.obj `if test -f '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/importer/texture.cc'; fi`
+
+particles-graphics_engine.o: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-graphics_engine.o -MD -MP -MF "$(DEPDIR)/particles-graphics_engine.Tpo" -c -o particles-graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-graphics_engine.Tpo" "$(DEPDIR)/particles-graphics_engine.Po"; else rm -f "$(DEPDIR)/particles-graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='particles-graphics_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-graphics_engine.Po' tmpdepfile='$(DEPDIR)/particles-graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-graphics_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+
+particles-graphics_engine.obj: $(MAINSRCDIR)/lib/graphics/graphics_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-graphics_engine.obj -MD -MP -MF "$(DEPDIR)/particles-graphics_engine.Tpo" -c -o particles-graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-graphics_engine.Tpo" "$(DEPDIR)/particles-graphics_engine.Po"; else rm -f "$(DEPDIR)/particles-graphics_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/graphics_engine.cc' object='particles-graphics_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-graphics_engine.Po' tmpdepfile='$(DEPDIR)/particles-graphics_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-graphics_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/graphics_engine.cc'; fi`
+
+particles-base_object.o: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-base_object.o -MD -MP -MF "$(DEPDIR)/particles-base_object.Tpo" -c -o particles-base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-base_object.Tpo" "$(DEPDIR)/particles-base_object.Po"; else rm -f "$(DEPDIR)/particles-base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='particles-base_object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-base_object.Po' tmpdepfile='$(DEPDIR)/particles-base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-base_object.o `test -f '$(MAINSRCDIR)/lib/lang/base_object.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/lang/base_object.cc
+
+particles-base_object.obj: $(MAINSRCDIR)/lib/lang/base_object.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-base_object.obj -MD -MP -MF "$(DEPDIR)/particles-base_object.Tpo" -c -o particles-base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-base_object.Tpo" "$(DEPDIR)/particles-base_object.Po"; else rm -f "$(DEPDIR)/particles-base_object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/lang/base_object.cc' object='particles-base_object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-base_object.Po' tmpdepfile='$(DEPDIR)/particles-base_object.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-base_object.obj `if test -f '$(MAINSRCDIR)/lib/lang/base_object.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/lang/base_object.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/lang/base_object.cc'; fi`
+
+particles-vector.o: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-vector.o -MD -MP -MF "$(DEPDIR)/particles-vector.Tpo" -c -o particles-vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-vector.Tpo" "$(DEPDIR)/particles-vector.Po"; else rm -f "$(DEPDIR)/particles-vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='particles-vector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-vector.Po' tmpdepfile='$(DEPDIR)/particles-vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-vector.o `test -f '$(MAINSRCDIR)/lib/math/vector.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/math/vector.cc
+
+particles-vector.obj: $(MAINSRCDIR)/lib/math/vector.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-vector.obj -MD -MP -MF "$(DEPDIR)/particles-vector.Tpo" -c -o particles-vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-vector.Tpo" "$(DEPDIR)/particles-vector.Po"; else rm -f "$(DEPDIR)/particles-vector.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/math/vector.cc' object='particles-vector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-vector.Po' tmpdepfile='$(DEPDIR)/particles-vector.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-vector.obj `if test -f '$(MAINSRCDIR)/lib/math/vector.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/math/vector.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/math/vector.cc'; fi`
+
+particles-resource_manager.o: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-resource_manager.o -MD -MP -MF "$(DEPDIR)/particles-resource_manager.Tpo" -c -o particles-resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-resource_manager.Tpo" "$(DEPDIR)/particles-resource_manager.Po"; else rm -f "$(DEPDIR)/particles-resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='particles-resource_manager.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-resource_manager.Po' tmpdepfile='$(DEPDIR)/particles-resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-resource_manager.o `test -f '$(MAINSRCDIR)/util/resource_manager.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/util/resource_manager.cc
+
+particles-resource_manager.obj: $(MAINSRCDIR)/util/resource_manager.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-resource_manager.obj -MD -MP -MF "$(DEPDIR)/particles-resource_manager.Tpo" -c -o particles-resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-resource_manager.Tpo" "$(DEPDIR)/particles-resource_manager.Po"; else rm -f "$(DEPDIR)/particles-resource_manager.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/util/resource_manager.cc' object='particles-resource_manager.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-resource_manager.Po' tmpdepfile='$(DEPDIR)/particles-resource_manager.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-resource_manager.obj `if test -f '$(MAINSRCDIR)/util/resource_manager.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/util/resource_manager.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/util/resource_manager.cc'; fi`
+
+particles-text_engine.o: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-text_engine.o -MD -MP -MF "$(DEPDIR)/particles-text_engine.Tpo" -c -o particles-text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-text_engine.Tpo" "$(DEPDIR)/particles-text_engine.Po"; else rm -f "$(DEPDIR)/particles-text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='particles-text_engine.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-text_engine.Po' tmpdepfile='$(DEPDIR)/particles-text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-text_engine.o `test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/graphics/text_engine.cc
+
+particles-text_engine.obj: $(MAINSRCDIR)/lib/graphics/text_engine.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-text_engine.obj -MD -MP -MF "$(DEPDIR)/particles-text_engine.Tpo" -c -o particles-text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-text_engine.Tpo" "$(DEPDIR)/particles-text_engine.Po"; else rm -f "$(DEPDIR)/particles-text_engine.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/graphics/text_engine.cc' object='particles-text_engine.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-text_engine.Po' tmpdepfile='$(DEPDIR)/particles-text_engine.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-text_engine.obj `if test -f '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/graphics/text_engine.cc'; fi`
+
+particles-p_node.o: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-p_node.o -MD -MP -MF "$(DEPDIR)/particles-p_node.Tpo" -c -o particles-p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-p_node.Tpo" "$(DEPDIR)/particles-p_node.Po"; else rm -f "$(DEPDIR)/particles-p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='particles-p_node.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-p_node.Po' tmpdepfile='$(DEPDIR)/particles-p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-p_node.o `test -f '$(MAINSRCDIR)/lib/coord/p_node.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/p_node.cc
+
+particles-p_node.obj: $(MAINSRCDIR)/lib/coord/p_node.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-p_node.obj -MD -MP -MF "$(DEPDIR)/particles-p_node.Tpo" -c -o particles-p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-p_node.Tpo" "$(DEPDIR)/particles-p_node.Po"; else rm -f "$(DEPDIR)/particles-p_node.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/p_node.cc' object='particles-p_node.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-p_node.Po' tmpdepfile='$(DEPDIR)/particles-p_node.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-p_node.obj `if test -f '$(MAINSRCDIR)/lib/coord/p_node.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/p_node.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/p_node.cc'; fi`
+
+particles-null_parent.o: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-null_parent.o -MD -MP -MF "$(DEPDIR)/particles-null_parent.Tpo" -c -o particles-null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-null_parent.Tpo" "$(DEPDIR)/particles-null_parent.Po"; else rm -f "$(DEPDIR)/particles-null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='particles-null_parent.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-null_parent.Po' tmpdepfile='$(DEPDIR)/particles-null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-null_parent.o `test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/coord/null_parent.cc
+
+particles-null_parent.obj: $(MAINSRCDIR)/lib/coord/null_parent.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-null_parent.obj -MD -MP -MF "$(DEPDIR)/particles-null_parent.Tpo" -c -o particles-null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-null_parent.Tpo" "$(DEPDIR)/particles-null_parent.Po"; else rm -f "$(DEPDIR)/particles-null_parent.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/coord/null_parent.cc' object='particles-null_parent.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-null_parent.Po' tmpdepfile='$(DEPDIR)/particles-null_parent.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-null_parent.obj `if test -f '$(MAINSRCDIR)/lib/coord/null_parent.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/coord/null_parent.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/coord/null_parent.cc'; fi`
+
+particles-gui_gtk.o: $(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-gui_gtk.o -MD -MP -MF "$(DEPDIR)/particles-gui_gtk.Tpo" -c -o particles-gui_gtk.o `test -f '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-gui_gtk.Tpo" "$(DEPDIR)/particles-gui_gtk.Po"; else rm -f "$(DEPDIR)/particles-gui_gtk.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc' object='particles-gui_gtk.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-gui_gtk.Po' tmpdepfile='$(DEPDIR)/particles-gui_gtk.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-gui_gtk.o `test -f '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc' || echo '$(srcdir)/'`$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc
+
+particles-gui_gtk.obj: $(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT particles-gui_gtk.obj -MD -MP -MF "$(DEPDIR)/particles-gui_gtk.Tpo" -c -o particles-gui_gtk.obj `if test -f '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/particles-gui_gtk.Tpo" "$(DEPDIR)/particles-gui_gtk.Po"; else rm -f "$(DEPDIR)/particles-gui_gtk.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc' object='particles-gui_gtk.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/particles-gui_gtk.Po' tmpdepfile='$(DEPDIR)/particles-gui_gtk.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(particles_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o particles-gui_gtk.obj `if test -f '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; then $(CYGPATH_W) '$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; else $(CYGPATH_W) '$(srcdir)/$(MAINSRCDIR)/lib/gui/gui/gui_gtk.cc'; fi`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/trunk/src/subprojects/particles/particle_fun.cc
===================================================================
--- orxonox/trunk/src/subprojects/particles/particle_fun.cc	(revision 4338)
+++ orxonox/trunk/src/subprojects/particles/particle_fun.cc	(revision 4338)
@@ -0,0 +1,277 @@
+/* 
+   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: ...
+
+   this file extends the framework file, so it renders what i want.
+*/
+
+#include "framework.h"
+
+#include "physics_engine.h"
+#include "particle_engine.h"
+
+
+void Framework::moduleInit()
+{
+  // Creating a Test Particle System
+  ParticleSystem* system = new ParticleSystem(100000, PARTICLE_SPRITE);
+
+  // Creating a Test Particle Emitter
+  ParticleEmitter* emitter = new ParticleEmitter(Vector(0 , 1, 0));
+  // Add the Flow from the Emitter into the System
+  ParticleEngine::getInstance()->addConnection(emitter, system);
+}
+
+void Framework::moduleEventHandler(SDL_Event* event)
+{
+  switch (event->type)
+    {
+    case SDL_KEYDOWN:
+      switch (event->key.keysym.sym)
+	{
+	case SDLK_i:
+	  ParticleEngine::getInstance()->debug();
+	  break;
+	}
+    }
+}
+
+void Framework::moduleTick(float dt)
+{
+  ParticleEngine::getInstance()->tick(dt);
+}
+
+void Framework::moduleDraw(float dt)
+{
+  ParticleEngine::getInstance()->draw(dt);
+}
+
+
+void Framework::moduleHelp(void) const
+{
+  PRINT(0)("\n");
+  PRINT(0)("i - Particle-state Information\n\n");
+  PRINT(0)("\n");
+
+}
+
+int emitterChange(GtkWidget* nonInterest, void* widget)
+{
+  Option* option = (Option*) widget;
+  const char* name = option->getTitle();
+  char* value = option->save();
+
+  ParticleEmitter* tmpEmit = ParticleEngine::getInstance()->getEmitterByNumber(1);
+  if (tmpEmit)
+    {
+      if (!strcmp(name, "EmissionRate"))
+	{
+	  tmpEmit->setEmissionRate(atof(value));
+	  PRINT(3)("EmissionRate set to %f\n", atof(value));
+	}
+      else if (!strcmp(name, "Velocity"))
+	{
+	  tmpEmit->setEmissionVelocity(atof(value));
+	  PRINT(3)("Velocity set to %f\n", atof(value));
+	}
+      else if(!strcmp(name, "SpreadAngle"))
+	{
+	  tmpEmit->setSpread(atof(value));
+	  PRINT(3)("SpreadAngle set to %f\n", atof(value));
+	}
+      else if(!strcmp(name, "EmitterType"))
+	{
+	  if (!strcmp(value, "EMITTER_DOT"))
+	    tmpEmit->setType(EMITTER_DOT);
+	  else if (!strcmp(value, "EMITTER_PLANE"))
+	    tmpEmit->setType(EMITTER_PLANE);
+	  else if (!strcmp(value, "EMITTER_CUBE"))
+	    tmpEmit->setType(EMITTER_CUBE);
+	  PRINT(3)("EmitterType set to %s\n", value);
+	}
+      else if(!strcmp(name, "EmitterSize"))
+	{
+	  tmpEmit->setSize(atof(value));
+	  PRINT(3)("EmitterSize set to %f\n", atof(value));
+	}
+    }
+  delete value;
+}
+
+
+int systemChange(GtkWidget* nonInterest, void* widget)
+{
+  Option* option = (Option*) widget;
+  const char* name = option->getTitle();
+  char* value = option->save();
+  printf("%s\n", value);
+
+  ParticleSystem* tmpSys = ParticleEngine::getInstance()->getSystemByNumber(1);
+  if (tmpSys)
+    {
+      if (!strcmp(name, "StartRadius"))
+	{
+	  tmpSys->setRadius(atof(value), tmpSys->getEndRadius());
+	  PRINT(3)("ParticleStartRadius set to %f\n", atof(value));
+	}
+      else if (!strcmp(name, "EndRadius"))
+	{
+	  tmpSys->setRadius( tmpSys->getStartRadius(), atof(value));
+	  PRINT(3)("ParticleEndRadius set to %f\n", atof(value));
+	}
+
+      else if (!strcmp(name, "LifeSpan"))
+	{
+	  tmpSys->setLifeSpan(atof(value));
+	  PRINT(3)("ParticleLifeSpan set to %f\n", atof(value));
+	}
+
+      else if (!strcmp(name, "ConserveFactor"))
+	{
+	  tmpSys->setConserve(atof(value));
+	  PRINT(3)("ParticleConserveFactor set to %f\n", atof(value));
+	}
+
+      else if (!strcmp(name, "ParticleType"))
+	{
+	  if (!strcmp(value, "PARTICLE_DOT"))
+	    tmpSys->setType(PARTICLE_DOT);
+	  else if (!strcmp(value, "PARTICLE_SPARK"))
+	    tmpSys->setType(PARTICLE_SPARK);
+	  else if (!strcmp(value, "PARTICLE_SPRITE"))
+	    tmpSys->setType(PARTICLE_SPRITE);
+
+	  PRINT(3)("ParticleType set to %s\n", value);
+	}
+
+      else if (!strcmp(name, "InheritSpeed"))
+	{
+	  tmpSys->setInheritSpeed(atof(value));
+	  PRINT(3)("ParticleInheritSpeed set to %f\n", atof(value));
+	}
+
+    }
+  delete value;
+}
+
+
+void Framework::moduleInitGui(void)
+{
+  Window* guiMainWindow = NULL;
+  
+  initGUI(0, NULL);
+  
+  guiMainWindow = new Window("ParticlesFUN");
+  {
+    Box* windowBox = new Box('v');
+    {
+      Frame* emitterFrame = new Frame("emitter-settings");
+      {
+	Box* emitterBox = new Box('v');
+	{
+	  emitterBox->fill(new Label("EmissionRate"));
+	  Slider* EmissionRate = new Slider("EmissionRate", 0, 1000);
+	  EmissionRate->connectSignal("value_changed", (void*)EmissionRate, emitterChange );
+	  emitterBox->fill(EmissionRate);
+	  
+	  emitterBox->fill(new Label("Velocity"));
+	  Slider* velocity = new Slider("Velocity", 0, 2);
+	  velocity->setExactness(3);
+	  velocity->connectSignal("value_changed", (void*)velocity, emitterChange );
+	  emitterBox->fill(velocity);
+	  
+	  emitterBox->fill(new Label("SpreadAngle"));
+	  Slider* SpreadAngle = new Slider("SpreadAngle", 0, M_PI);
+	  SpreadAngle->setExactness(3);
+	  SpreadAngle->connectSignal("value_changed", (void*)SpreadAngle, emitterChange );
+	  emitterBox->fill(SpreadAngle);
+
+	  emitterBox->fill(new Label("EmitterType"));
+	  Menu* EmitterType = new Menu("EmitterType");
+	  EmitterType->addItem("EMITTER_DOT");
+	  EmitterType->addItem("EMITTER_PLANE");
+	  EmitterType->addItem("EMITTER_CUBE");
+	  EmitterType->connectSignal("changed", (void*)EmitterType, emitterChange );	  
+	  emitterBox->fill(EmitterType);
+
+	  emitterBox->fill(new Label("EmitterSize"));
+	  Slider* EmitterSize = new Slider("EmitterSize", 0, 100);
+	  EmitterSize->setExactness(1);
+	  EmitterSize->connectSignal("value_changed", (void*)EmitterSize, emitterChange );
+	  emitterBox->fill(EmitterSize);
+	}
+	emitterFrame->fill(emitterBox);
+      }
+      windowBox->fill(emitterFrame);
+      
+      Frame* systemFrame = new Frame("system-settings");
+      {
+	Box* systemBox = new Box('v');
+	{
+	  systemBox->fill(new Label("StartRadius"));
+	  Slider* StartRadius = new Slider("StartRadius", 0, 10);
+	  StartRadius->setExactness(3);
+	  StartRadius->connectSignal("value_changed", (void*)StartRadius, systemChange );
+	  systemBox->fill(StartRadius);
+
+	  systemBox->fill(new Label("EndRadius"));
+	  Slider* EndRadius = new Slider("EndRadius", 0, 10);
+	  EndRadius->setExactness(3);
+	  EndRadius->connectSignal("value_changed", (void*)EndRadius, systemChange );
+	  systemBox->fill(EndRadius);
+
+	  systemBox->fill(new Label("LifeSpan"));
+	  Slider* LifeSpan = new Slider("LifeSpan", 0, 10);
+	  LifeSpan->setExactness(3);
+	  LifeSpan->connectSignal("value_changed", (void*)LifeSpan, systemChange );
+	  systemBox->fill(LifeSpan);
+	  
+	  systemBox->fill(new Label("ConserveFactor"));
+	  Slider* ConserveFactor = new Slider("ConserveFactor", 0, 1);
+	  ConserveFactor->setExactness(3);
+	  ConserveFactor->connectSignal("value_changed", (void*)ConserveFactor, systemChange );
+	  systemBox->fill(ConserveFactor);
+
+	  systemBox->fill(new Label("ParticleType"));
+	  Menu* ParticleType = new Menu("ParticleType");
+	  ParticleType->addItem("PARTICLE_DOT");
+	  ParticleType->addItem("PARTICLE_SPARK");
+	  ParticleType->addItem("PARTICLE_SPRITE");
+	  ParticleType->connectSignal("changed", (void*)ParticleType, systemChange );	  
+	  systemBox->fill(ParticleType);
+	  
+	  systemBox->fill(new Label("InheritSpeed"));
+	  Slider* InheritSpeed = new Slider("InheritSpeed", 0, 1);
+	  InheritSpeed->setExactness(3);
+	  InheritSpeed->connectSignal("value_changed", (void*)InheritSpeed, systemChange );
+	  systemBox->fill(InheritSpeed);
+
+
+	}
+	systemFrame->fill(systemBox);
+      }
+      windowBox->fill(systemFrame);
+      
+      Button* quitButton = new Button("quit");
+      
+      quitButton->connectSignal("clicked", NULL, quitGui);
+      //  Window::mainWindow->connectSignal("remove", this, GuiExec::quitGui);
+      Window::mainWindow->connectSignal("destroy", NULL, quitGui);
+      
+      windowBox->fill(quitButton);
+    }
+    guiMainWindow->fill(windowBox);
+  }
+  Window::mainWindow->showall();
+  Window::mainWindow->setSize(300, 500);
+}
Index: orxonox/trunk/src/util/state.cc
===================================================================
--- orxonox/trunk/src/util/state.cc	(revision 4338)
+++ orxonox/trunk/src/util/state.cc	(revision 4338)
@@ -0,0 +1,66 @@
+/* 
+   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_WORLD_ENTITY
+
+#include "state.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+State::State () 
+{
+   this->setClassName ("State");
+
+   this->camera = NULL;
+   this->cameraTarget = NULL;
+}
+
+/**
+   \brief the singleton reference to this class
+*/
+State* State::singletonRef = NULL;
+
+/**
+   \returns a Pointer to this Class
+*/
+State* State::getInstance(void)
+{
+  if (!State::singletonRef)
+    State::singletonRef = new State();
+  return State::singletonRef;
+}
+
+/**
+   \brief standard deconstructor
+
+*/
+State::~State () 
+{
+  State::singletonRef = NULL;
+
+}
+
+/**
+   \sets camera and target of the current Camera
+*/
+void State::setCamera(const PNode* camera, const PNode* cameraTarget)
+{
+  this->camera = camera;
+  this->cameraTarget = cameraTarget;
+}
Index: orxonox/trunk/src/util/state.h
===================================================================
--- orxonox/trunk/src/util/state.h	(revision 4338)
+++ orxonox/trunk/src/util/state.h	(revision 4338)
@@ -0,0 +1,34 @@
+/*! 
+    \file proto_singleton.h
+    \brief Definition of the States-singleton Class
+    
+*/
+
+#ifndef _STATE_H
+#define _STATE_H
+
+#include "base_object.h"
+
+// FORWARD DEFINITION
+class PNode;
+
+//! A Singleton class, that handles some states about orxonox's objects
+class State : public BaseObject {
+
+ public:
+  static State* getInstance(void);
+  virtual ~State(void);
+
+  void setCamera(const PNode* camera, const PNode* cameraTarget);
+  const PNode* getCamera(void) const { return this->camera; };
+  const PNode* getCameraTarget(void) const { return this->cameraTarget; };
+
+ private:
+  State(void);
+  static State* singletonRef;
+
+  const PNode* camera;
+  const PNode* cameraTarget;
+};
+
+#endif /* _STATE_H */
Index: orxonox/trunk/src/world_entities/camera.h
===================================================================
--- orxonox/trunk/src/world_entities/camera.h	(revision 4329)
+++ orxonox/trunk/src/world_entities/camera.h	(revision 4338)
@@ -19,5 +19,5 @@
    This class controls the viewpoint from which the World is rendered.
 */
-class Camera : public PNode 
+class Camera : public PNode
 {
  private:
