Index: code/branches/FICN/Media/material/PE_materials.material
===================================================================
--- code/branches/FICN/Media/material/PE_materials.material	(revision 502)
+++ code/branches/FICN/Media/material/PE_materials.material	(revision 502)
@@ -0,0 +1,143 @@
+material PE/lensflare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture flare.png
+			}
+		}
+	}
+}
+
+material PE/bigFlame
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture bigflame.png
+			}
+		}
+	}
+}
+
+material PE/smoke
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend alpha_blend
+
+			texture_unit
+			{
+				texture smoke.png
+			}
+		}
+	}
+}
+
+material PE/explosion
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture explosion.png
+			}
+		}
+	}
+}
+
+material PE/ringflare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture ring_flare.png
+			}
+		}
+	}
+}
+
+material PE/ringflare2
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture ring_flare2.png
+			}
+		}
+	}
+}
+
+material PE/Flare
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			scene_blend add
+			depth_write off
+
+			texture_unit
+			{
+				texture flaretrail.png
+			}
+		}
+	}
+}
+
+material PE/Streak
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+			scene_blend add
+
+			texture_unit
+			{
+				texture streak.png
+			}
+		}
+	}
+}
Index: code/branches/FICN/Media/particle/rauch.particle
===================================================================
--- code/branches/FICN/Media/particle/rauch.particle	(revision 502)
+++ code/branches/FICN/Media/particle/rauch.particle	(revision 502)
@@ -0,0 +1,51 @@
+
+Orxonox/rauch
+{
+	quota	1000
+	material	PE/smoke
+	particle_width	4
+	particle_height	4
+	cull_each	false
+	renderer	billboard
+	billboard_type	point
+
+	emitter Ellipsoid
+	{
+		angle	150
+		colour	0.0547945 0.0547945 0.0547945 0.9
+		colour_range_start	0.0547945 0.0547945 0.0547945 0.9
+		colour_range_end	0.0547945 0.0547945 0.0547945 0.9
+		direction	0 1 0
+		emission_rate	40
+		position	0 0 0
+		velocity	2
+		velocity_min	2
+		velocity_max	2
+		time_to_live	3
+		time_to_live_min	3
+		time_to_live_max	5
+		duration	0
+		duration_min	0
+		duration_max	0
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	0.2
+		height	0.2
+		depth	0.2
+	}
+
+	affector ColourFader
+	{
+		red	0.3
+		green	0.3
+		blue	0.3
+		alpha	-0.35
+	}
+
+	affector LinearForce
+	{
+		force_vector	10 0 0
+		force_application	add
+	}
+}
Index: code/branches/FICN/Media/particle/schuss.particle
===================================================================
--- code/branches/FICN/Media/particle/schuss.particle	(revision 502)
+++ code/branches/FICN/Media/particle/schuss.particle	(revision 502)
@@ -0,0 +1,37 @@
+
+Orxonox/Schuss
+{
+	quota	5000
+	material	PE/lensflare
+	particle_width	3
+	particle_height	3
+	cull_each	false
+	renderer	billboard
+	billboard_type	point
+
+	emitter Cylinder
+	{
+		angle	0
+		colour	1 1 0 1
+		colour_range_start	1 1 0 1
+		colour_range_end	0.3 1 0.3 1
+		direction	0 1 0
+		emission_rate	260.9
+		position	0 0 0
+		velocity	120
+		velocity_min	120
+		velocity_max	120
+		time_to_live	2
+		time_to_live_min	2
+		time_to_live_max	2
+		duration	0.1
+		duration_min	0.1
+		duration_max	0.1
+		repeat_delay	0.5
+		repeat_delay_min	0.5
+		repeat_delay_max	0.5
+		width	0.5
+		height	0.5
+		depth	5
+	}
+}
Index: code/branches/FICN/Media/particle/strahl.particle
===================================================================
--- code/branches/FICN/Media/particle/strahl.particle	(revision 502)
+++ code/branches/FICN/Media/particle/strahl.particle	(revision 502)
@@ -0,0 +1,30 @@
+
+Orxonox/strahl
+{
+	quota	1000
+	material	PE/lensflare
+	particle_width	4
+	particle_height	4
+	cull_each	false
+	renderer	billboard
+	billboard_type	point
+
+	emitter Point
+	{
+		angle	0
+		colour	1 1 1 1
+		colour_range_start	1 1 1 1
+		colour_range_end	1 1 1 1
+		direction	0 1 0
+		emission_rate	100
+		position	0 0 0
+		velocity	50
+		time_to_live	8
+		duration	0
+		duration_min	0
+		duration_max	0
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+	}
+}
Index: code/branches/FICN/Media/particle/strahl2.particle
===================================================================
--- code/branches/FICN/Media/particle/strahl2.particle	(revision 502)
+++ code/branches/FICN/Media/particle/strahl2.particle	(revision 502)
@@ -0,0 +1,38 @@
+
+Orxonox/strahl2
+{
+	quota	1200
+	material	PE/lensflare
+	particle_width	4
+	particle_height	4
+	cull_each	false
+	renderer	billboard
+	billboard_type	point
+
+	emitter Ring
+	{
+		angle	0
+		colour	1 1 1 1
+		colour_range_start	1 1 1 1
+		colour_range_end	1 1 1 1
+		direction	0 1 0
+		emission_rate	7
+		position	0 0 0
+		velocity	20
+		velocity_min	20
+		velocity_max	50
+		time_to_live	10
+		duration	0
+		duration_min	0
+		duration_max	0
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	15
+		height	15
+		depth	15
+		inner_width	0.5
+		inner_height	0.5
+	}
+
+}
Index: code/branches/FICN/Media/particle/treibwerk.particle
===================================================================
--- code/branches/FICN/Media/particle/treibwerk.particle	(revision 502)
+++ code/branches/FICN/Media/particle/treibwerk.particle	(revision 502)
@@ -0,0 +1,54 @@
+
+Orxonox/treibwerk
+{
+	quota	1000
+	material	PE/bigFlame
+	particle_width	20
+	particle_height	20
+	cull_each	false
+	renderer	billboard
+	billboard_type	point
+
+	emitter HollowEllipsoid
+	{
+		angle	0
+		colour	0.493151 0.246575 0.0410959 1
+		colour_range_start	0.493151 0.246575 0.0410959 1
+		colour_range_end	0.684932 0.547945 0.315068 1
+		direction	0 1 0
+		emission_rate	130.4
+		position	0 0 0
+		velocity	18
+		velocity_min	18
+		velocity_max	30
+		time_to_live	0.9
+		time_to_live_min	0.9
+		time_to_live_max	2
+		duration	0
+		duration_min	0
+		duration_max	0
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	20
+		height	20
+		depth	2.8
+		inner_width	0.8
+		inner_height	0.8
+		inner_depth	0.8
+	}
+
+
+	affector ColourFader2
+	{
+		red1	0
+		green1	0
+		blue1	0
+		alpha1	0
+		red2	-0.2
+		green2	-0.4
+		blue2	-0.4
+		alpha2	0
+		state_change	0.9
+	}
+}
Index: code/branches/FICN/bin/resources.cfg
===================================================================
--- code/branches/FICN/bin/resources.cfg	(revision 501)
+++ code/branches/FICN/bin/resources.cfg	(revision 502)
@@ -13,5 +13,5 @@
 FileSystem=../Media/models
 FileSystem=../Media/overlay
-#FileSystem=../Media/particle
+FileSystem=../Media/particle
 FileSystem=../Media/gui
 Zip=../Media/packs/cubemap.zip
@@ -22,25 +22,2 @@
 Zip=../Media/packs/skybox.zip
 
-# # Resource locations to be added to the 'boostrap' path
-# # This also contains the minimum you need to use the Ogre example framework
-# [Bootstrap]
-# Zip=../Media/packs/OgreCore.zip
-#
-# # Resource locations to be added to the default path
-# [General]
-# FileSystem=../Media
-# FileSystem=../Media/fonts
-# FileSystem=../Media/materials/programs
-# FileSystem=../Media/materials/scripts
-# FileSystem=../Media/materials/textures
-# FileSystem=../Media/models
-# FileSystem=../Media/overlays
-# FileSystem=../Media/particle
-# FileSystem=../Media/gui
-# FileSystem=../Media/DeferredShading../Media
-# Zip=../Media/packs/cubemap.zip
-# Zip=../Media/packs/cubemapsJS.zip
-# Zip=../Media/packs/dragon.zip
-# Zip=../Media/packs/fresneldemo.zip
-# Zip=../Media/packs/ogretestmap.zip
-# Zip=../Media/packs/skybox.zip
Index: code/branches/FICN/src/hud/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/hud/CMakeLists.txt	(revision 502)
+++ code/branches/FICN/src/hud/CMakeLists.txt	(revision 502)
@@ -0,0 +1,8 @@
+PROJECT(Orxonox)
+
+# create a few variables to simplify life
+SET( HUD_SRC
+	hud_overlay.cc
+   )
+
+ADD_LIBRARY(HUD ${HUD_SRC} )
Index: code/branches/FICN/src/hud/hud_overlay.cc
===================================================================
--- code/branches/FICN/src/hud/hud_overlay.cc	(revision 502)
+++ code/branches/FICN/src/hud/hud_overlay.cc	(revision 502)
@@ -0,0 +1,151 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   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 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *
+ *   Author:
+ *      HUD design: Yuning Chai
+ *      Implementation: Yuning Chai
+ *   Co-authors:
+ *      Implementation: Reto Grieder
+ *
+ */
+
+//#include "OgreMath.h"
+//#include "OgreVector3.h"
+#include "OgreStringConverter.h"
+#include "OgreOverlayManager.h"
+#include "OgreOverlay.h"
+#include "OgreOverlayElement.h"
+
+#include "hud_overlay.h"
+
+
+namespace orxonox {
+namespace hud {
+  using namespace Ogre;
+
+  HUDOverlay::HUDOverlay()
+  {
+    //TODO: write safe guard
+    overlay_ = OverlayManager::getSingleton().getByName("Orxonox/HUD1.2");
+  }
+
+
+  HUDOverlay::~HUDOverlay()
+  {
+  }
+
+
+  void HUDOverlay::show()
+  {
+    //TODO: safe guard
+    overlay_->show();
+  }
+
+
+  void HUDOverlay::hide()
+  {
+    //TODO: safe guard
+    overlay_->hide();
+  }
+
+
+  bool HUDOverlay::tick(unsigned long, Ogre::Real)
+  {
+		// set Time
+		int TimeMin = 99;
+		int TimeSec = 55;
+		OverlayElement* TimeText = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/Time/Text");
+		TimeText->setCaption(StringConverter::toString(TimeMin) + ":" + StringConverter::toString(TimeSec));
+		
+		// set TargetWindow
+		String TargetWindowName = "HURRA";
+		int TargetWindowDistance = 12;
+		String TargetWindowStatus = "Dead";
+		int TargetWindowHitRating = 30;
+		OverlayElement* TargetWindowNameText = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/Name");
+		TargetWindowNameText->setCaption( TargetWindowName);		
+		OverlayElement* TargetWindowDistanceText = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/DistanceText");
+		TargetWindowDistanceText->setCaption(StringConverter::toString(TargetWindowDistance) + "km" );
+		OverlayElement* TargetWindowStatusText = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/StatusText");
+		TargetWindowStatusText->setCaption( TargetWindowStatus );
+		OverlayElement* TargetWindowHitRatingText = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/TargetWindow/HitRatingText");
+		TargetWindowHitRatingText->setCaption(StringConverter::toString(TargetWindowHitRating) + "%" );
+		
+		// set Energy
+		int EnergyValue = 60.0;
+		OverlayElement* EnergyLength = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/EnergyBackground");
+		EnergyLength->setWidth((int)((double)60/(double)100*200));
+		
+		// set Shild
+		bool ShildLeftTopValue = true;
+		bool ShildRightTopValue = false;
+		bool ShildLeftBottomValue = false;
+		bool ShildRightBottomValue = true;
+		OverlayElement* ShildLeftTop = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/ShildLeftTop");
+		if (ShildLeftTopValue) ShildLeftTop->show();
+		else ShildLeftTop->hide();
+		OverlayElement* ShildRightTop = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/ShildRightTop");
+		if (ShildRightTopValue) ShildRightTop->show();
+		else ShildRightTop->hide();
+		OverlayElement* ShildLeftBottom = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/ShildLeftBottom");
+		if (ShildLeftBottomValue) ShildLeftBottom->show();
+		else ShildLeftBottom->hide();
+		OverlayElement* ShildRightBottom = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/ShildRightBottom");
+		if (ShildRightBottomValue) ShildRightBottom->show();
+		else ShildRightBottom->hide();
+		
+		// set Rockets
+		int Rocket1 = 11;
+		int Rocket2 = 22;
+		int Rocket3 = 33;
+		int Rocket4 = 44;
+		OverlayElement* RocketNum1 = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum1");
+		RocketNum1->setCaption(StringConverter::toString(Rocket1));
+		OverlayElement* RocketNum2 = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum2");
+		RocketNum2->setCaption(StringConverter::toString(Rocket2));
+		OverlayElement* RocketNum3 = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum3");
+		RocketNum3->setCaption(StringConverter::toString(Rocket3));
+		OverlayElement* RocketNum4 = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/RocketNum4");
+		RocketNum4->setCaption(StringConverter::toString(Rocket4));
+		
+		// set EnergyDistribution
+		double EnergyDistrPixelX = 100;
+		double EnergyDistrPixelY = 86;		
+		double EnergyDistrShild = 32;
+		double EnergyDistrEngine = 50;
+		double EnergyDistrLaser = 18;
+		double EnergyDistrShildInv = 100 - EnergyDistrShild;
+		double EnergyDistrEngineInv = 100 - EnergyDistrEngine;
+		double EnergyDistrLaserInv = 100 - EnergyDistrLaser;
+		double EnergyDistrY = (double)EnergyDistrEngineInv/((double)EnergyDistrEngineInv+(double)EnergyDistrLaserInv) * EnergyDistrPixelY;
+		double EnergyDistrX = EnergyDistrY/1.7321;
+		
+		
+		
+		OverlayElement* EnergyDistrPoint = OverlayManager::getSingleton().getOverlayElement("Orxonox/HUD1.2/EnergyDistrPoint");
+//		EnergyDistrPoint->setLeft();
+//		EnergyDistrPoint->setTop();
+
+
+    // keep rendering
+    return true;
+  }
+}
+}
Index: code/branches/FICN/src/hud/hud_overlay.h
===================================================================
--- code/branches/FICN/src/hud/hud_overlay.h	(revision 502)
+++ code/branches/FICN/src/hud/hud_overlay.h	(revision 502)
@@ -0,0 +1,62 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   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 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *
+ *   Author:
+ *      HUD design: Yuning Chai
+ *      Implementation: Yuning Chai
+ *   Co-authors:
+ *      Implementation: Reto Grieder
+ *
+ */
+
+
+#ifndef HUD_OVERLAY_H
+#define HUD_OVERLAY_H
+
+#include "OgrePrerequisites.h"
+
+
+namespace orxonox {
+namespace hud {
+
+  class HUDOverlay
+  {
+  public:
+    HUDOverlay();
+	  virtual ~HUDOverlay();
+
+    void show();
+
+    void hide();
+
+    bool tick(unsigned long, Ogre::Real);
+
+  protected:
+
+  public:
+
+  protected:
+    Ogre::Overlay *overlay_;
+
+  };
+}
+}
+
+#endif /* HUD_OVERLAY_H */
Index: code/branches/FICN/src/particle/ParticleInterface.cc
===================================================================
--- code/branches/FICN/src/particle/ParticleInterface.cc	(revision 502)
+++ code/branches/FICN/src/particle/ParticleInterface.cc	(revision 502)
@@ -0,0 +1,155 @@
+#include "ParticleInterface.h"
+#include <Ogre.h>
+#include <OIS/OIS.h>
+#include <CEGUI/CEGUI.h>
+#include <CEGUIRenderer.h>
+
+
+using namespace Ogre;
+
+namespace particle {
+
+	ParticleInterface::~ParticleInterface(void)
+	{
+		sceneManager_->destroyParticleSystem(particleSystem_);
+
+		delete sceneNode_;
+		delete particleSystem_;
+		delete sceneManager_;
+	}
+
+	ParticleInterface::ParticleInterface( SceneManager *sceneManager, String name, String templateName )
+	{
+		sceneManager_ = sceneManager;
+		particleSystem_ = sceneManager->createParticleSystem(name, templateName);	
+
+		//Variabeln einlesen, Emitter1_ ist Referenz-Emitter
+		velocity_ = particleSystem_->getSpeedFactor();
+		colour_ = particleSystem_->getEmitter(0)->getColour();
+		rate_ = particleSystem_->getEmitter(0)->getEmissionRate();
+		distance_ = particleSystem_->getEmitter(0)->getTimeToLive();
+
+		//Anzahl der Emitter
+		numberOfEmitters_ = particleSystem_->getNumEmitters();
+		standardizeEmitters();
+	}
+
+	void ParticleInterface::standardizeEmitters(void)
+	{
+		//Abgleichen der anderen Emitter an die Variabeln
+		for (int i=1; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setColour( colour_ );
+			particleSystem_->getEmitter(i)->setTimeToLive( distance_ );
+			particleSystem_->getEmitter(i)->setEmissionRate( rate_ );
+		}
+
+	}
+
+	void ParticleInterface::addToSceneNode( SceneNode* sceneNode )
+	{
+		sceneNode_ = sceneNode;
+		sceneNode_->attachObject(particleSystem_);
+	}
+
+	void ParticleInterface::dettachFromSceneNode ( void ) 
+	{
+		sceneNode_->detachObject(particleSystem_);
+		sceneNode_ = NULL;
+	}
+
+	Real ParticleInterface::getVelocity() 
+	{
+		return velocity_;
+	}
+
+	void ParticleInterface::setVelocity(Real v)
+	{
+		velocity_ = v;
+		//partikel anpassen
+		particleSystem_->setSpeedFactor(v);
+	}
+
+	int ParticleInterface::getRate()
+	{
+		return rate_;
+	}
+	void ParticleInterface::setRate(int r)
+	{
+		rate_ = r;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setEmissionRate(rate_);
+		}
+	}
+
+	Real ParticleInterface::getDistance()
+	{
+		return distance_;
+	}
+
+	void ParticleInterface::setDistance(Real d)
+	{
+		distance_ = d;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setTimeToLive(distance_);
+		}
+	}
+	ColourValue ParticleInterface::getColour()
+	{
+		return colour_;
+	}
+
+	void ParticleInterface::setColour(ColourValue colour)
+	{
+		colour_ = colour;
+		//partikel anpassen
+		for (int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setColour(colour_);
+		}
+	}
+
+	ParticleEmitter* ParticleInterface::getEmitter( int emitterNr )
+	{
+		if (!(emitterNr<numberOfEmitters_)) return NULL;
+		return particleSystem_->getEmitter(emitterNr);
+	}
+
+	void ParticleInterface::newEmitter ( void )
+	{
+		particleSystem_->addEmitter(particleSystem_->getEmitter(0)->getType());
+		numberOfEmitters_=numberOfEmitters_+1;
+		particleSystem_->getEmitter(0)->copyParametersTo( particleSystem_->getEmitter(numberOfEmitters_-1) );
+	}
+
+	void ParticleInterface::setPositionOfEmitter ( int emitterNr, Vector3 position )
+	{
+		particleSystem_->getEmitter(emitterNr)->setPosition(position);
+	}
+
+	Vector3 ParticleInterface::getPositionOfEmitter ( int emitterNr )
+	{
+		return particleSystem_->getEmitter(0)->getPosition();
+	}
+
+	void ParticleInterface::setDirection ( Vector3 direction )
+	{
+		for(int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setDirection(direction);
+		}
+	}
+
+
+	Vector3 ParticleInterface::getDirection ( void )
+	{
+		return particleSystem_->getEmitter(0)->getDirection();
+	}
+
+	void ParticleInterface::switchEnable(){
+		bool enable=(!(particleSystem_->getEmitter(0)->getEnabled()));
+		for(int i=0; i<numberOfEmitters_; i++) {
+			particleSystem_->getEmitter(i)->setEnabled(enable);
+		}
+	}
+
+}
Index: code/branches/FICN/src/particle/ParticleInterface.h
===================================================================
--- code/branches/FICN/src/particle/ParticleInterface.h	(revision 502)
+++ code/branches/FICN/src/particle/ParticleInterface.h	(revision 502)
@@ -0,0 +1,54 @@
+#ifndef MODULE_ParticleInterface_H 
+#define MODULE_ParticleInterface_H
+
+#include "ParticleInterface.h"
+#include <Ogre.h>
+#include <OIS/OIS.h>
+#include <CEGUI/CEGUI.h>
+#include <CEGUIRenderer.h>
+
+using namespace Ogre;
+
+namespace particle
+{
+
+class ParticleInterface
+{
+ public:
+	ParticleSystem *particleSystem_;
+
+	ParticleInterface( SceneManager *sceneManager, String name, String templateName );
+	~ParticleInterface( void );
+	void addToSceneNode( SceneNode* sceneNode );
+	void dettachFromSceneNode( void );
+	ParticleEmitter* getEmitter ( int emitterNr );
+	void newEmitter ( void );
+	void setPositionOfEmitter ( int emitterNr, Vector3 position );
+	Vector3 getPositionOfEmitter ( int emitterNr );
+	void setDirection ( Vector3 direction );
+	Vector3 getDirection ( void );
+	Real getVelocity();
+	void setVelocity( Real v );
+	int getRate();
+	void setRate( int r );
+	Real getDistance();
+	void setDistance( Real d );
+	ColourValue getColour( void );
+	void setColour( ColourValue colour );
+	void switchEnable( void );
+
+ private:
+	SceneNode *sceneNode_;
+	SceneManager *sceneManager_;
+	Real distance_;
+	Real velocity_;
+	int rate_;
+	ColourValue colour_;
+	int numberOfEmitters_;
+
+	void standardizeEmitters();
+};
+
+
+}
+#endif
