Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/objects/NPC.h @ 790

Last change on this file since 790 was 790, checked in by nicolasc, 16 years ago

merged FICN back into trunk
awaiting release.

File size: 1.3 KB
RevLine 
[603]1/**
2  @file NPC.h
3  @brief AI using WorldEntity
4  @author Benjamin Knecht <beni_at_orxonox.net>
5 */
6
[673]7#ifndef _NPC_H__
8#define _NPC_H__
[708]9
10#include "../OrxonoxPrereqs.h"
[603]11
[617]12#include "Model.h"
[603]13
[708]14class TiXmlElement; // Forward declaration
15
[603]16namespace orxonox {
17
[729]18  class _OrxonoxExport NPC : public Model
[603]19  {
[617]20    public:
21
22      NPC();
23      virtual ~NPC();
[627]24      virtual void loadParams(TiXmlElement* xmlElem);
[617]25      void tick(float dt);
[619]26      void update();
[617]27      void setValues(Vector3 location, Vector3 speed, Vector3 acceleration, bool movable);
28
29    private:
[627]30      float getDistance(WorldEntity* temp);
31      void calculateAcceleration();
32      Vector3 separation();
33      Vector3 alignment();
34      Vector3 cohesion();
[617]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
[728]44      static int const NUMELEMENTS = 9;  //number of elements
[603]45  };
[729]46  ExportClass(NPC, Orxonox);
[603]47
48}
[673]49#endif /* _NPC_H__ */
Note: See TracBrowser for help on using the repository browser.