Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/orxonox/objects/NPC.h @ 708

Last change on this file since 708 was 708, checked in by rgrieder, 16 years ago
  • added Vector2, Vector3, Matrix3, ColourValue, Quaternion and String to the misc folder as header files (each of them contains #include <string> … typedef std::string String , etc.)
  • please use String from now on by including <misc/String.h"
  • removed #include <OgreVector3.h", etc. from "CoreIncludes.h" (adjusted all source files)
  • adjusted all the source files (except network, that keeps <string> for the moment) (what a mess..)
  • moved usleep hack to misc/Sleep.h
  • relative include paths for files from other root directories (like misc, network, etc.) (but it stills writes "../Orxonox.h" when in folder orxonox/objects)
  • "OgreSceneManager.h" —> <OgreSceneManager.h>
  • included OrxonoxPrereqs in every file in folder orxonox
  • moved HUD and ParticleInterface to namespace orxonox
  • removed some using namespace Ogre/std when appropriate
  • I hope I haven't forgotten important points..
File size: 1.3 KB
Line 
1/**
2  @file NPC.h
3  @brief AI using WorldEntity
4  @author Benjamin Knecht <beni_at_orxonox.net>
5 */
6
7#ifndef _NPC_H__
8#define _NPC_H__
9
10#include "../OrxonoxPrereqs.h"
11
12#include "Model.h"
13
14class TiXmlElement; // Forward declaration
15
16namespace orxonox {
17
18  class NPC : public Model
19  {
20    public:
21
22      NPC();
23      virtual ~NPC();
24      virtual void loadParams(TiXmlElement* xmlElem);
25      void tick(float dt);
26      void update();
27      void setValues(Vector3 location, Vector3 speed, Vector3 acceleration, bool movable);
28
29    private:
30      float getDistance(WorldEntity* temp);
31      void calculateAcceleration();
32      Vector3 separation();
33      Vector3 alignment();
34      Vector3 cohesion();
35
36
37    private:
38      bool movable_;  // movability of the element, (false) gives the possiblity that an object can`t be moved by flocking but still gets into the calculation
39
40      // those values should maybe be controlled by a higher power and should maybe be parameters that can be changed
41      static int const SEPERATIONDISTANCE = 300;  //detectionradius of seperation
42      static int const ALIGNMENTDISTANCE = 300;  //detectionradius of alignment
43      static int const COHESIONDISTANCE = 5000;  //detectionradius of cohesion
44      static int const ANZELEMENTS = 9;  //number of elements
45  };
46
47}
48#endif /* _NPC_H__ */
Note: See TracBrowser for help on using the repository browser.