Menge Plugin Examples
A Collection of Example Plugins for the Menge Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
KaramouzasSimulator.h
Go to the documentation of this file.
1 /*
2 
3 License
4 
5 Menge
6 Copyright and trademark 2012-14 University of North Carolina at Chapel Hill.
7 All rights reserved.
8 
9 Permission to use, copy, modify, and distribute this software and its documentation
10 for educational, research, and non-profit purposes, without fee, and without a
11 written agreement is hereby granted, provided that the above copyright notice,
12 this paragraph, and the following four paragraphs appear in all copies.
13 
14 This software program and documentation are copyrighted by the University of North
15 Carolina at Chapel Hill. The software program and documentation are supplied "as is,"
16 without any accompanying services from the University of North Carolina at Chapel
17 Hill or the authors. The University of North Carolina at Chapel Hill and the
18 authors do not warrant that the operation of the program will be uninterrupted
19 or error-free. The end-user understands that the program was developed for research
20 purposes and is advised not to rely exclusively on the program for any reason.
21 
22 IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL OR THE AUTHORS
23 BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
24 DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
25 DOCUMENTATION, EVEN IF THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL OR THE
26 AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 
28 THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL AND THE AUTHORS SPECIFICALLY
29 DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
30 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND ANY STATUTORY WARRANTY
31 OF NON-INFRINGEMENT. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
32 THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL AND THE AUTHORS HAVE NO OBLIGATIONS
33 TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
34 
35 Any questions or comments should be sent to the authors {menge,geom}@cs.unc.edu
36 
37 */
38 
39 #ifndef __KARAMOUZAS_SIMULATOR_H__
40 #define __KARAMOUZAS_SIMULATOR_H__
41 
49 #include "mengeCommon.h"
50 #include "SimulatorBase.h"
51 #include "KaramouzasAgent.h"
52 
53 using namespace Menge;
54 
60 namespace Karamouzas {
64  class Simulator : public Agents::SimulatorBase< Agent > {
65  public:
69  Simulator(): Agents::SimulatorBase< Agent >() {}
70 
77  virtual bool hasExpTarget() { return true; }
78 
86  virtual bool isExpTarget( const std::string & tagName ) { return tagName == "Karamouzas"; }
87 
95  virtual bool setExpParam( const std::string & paramName, const std::string & value ) throw( Agents::XMLParamException );
96 
97  protected:
98  friend class Agent;
103  static float ORIENT_WEIGHT;
104 
109  static float COS_FOV_ANGLE;
110 
114  static float REACTION_TIME;
115 
119  static float WALL_STEEPNESS;
120 
124  static float WALL_DISTANCE;
125 
129  static int COLLIDING_COUNT;
130 
134  static float D_MIN;
135 
139  static float D_MID;
140 
144  static float D_MAX;
145 
149  static float AGENT_FORCE;
150  };
151 } // namespace Karamouzas
152 
153 #endif // __KARAMOUZAS_SIMULATOR_H__
static float WALL_STEEPNESS
The steepness that the wall forces fall off: K > 0.
Definition: KaramouzasSimulator.h:119
The agent definition for the Karamouzas 2009 agent.
Definition: KaramouzasAgent.h:57
static float COS_FOV_ANGLE
The half angle that defines the field of view around orientation.
Definition: KaramouzasSimulator.h:109
virtual bool isExpTarget(const std::string &tagName)
Reports if the given Experiment attribute tag name belongs to this simulator.
Definition: KaramouzasSimulator.h:86
static float D_MIN
The critical distance at which agent response force climbs.
Definition: KaramouzasSimulator.h:134
Defines the simulator operating on a Karamouzas::Agent.
Definition: KaramouzasSimulator.h:64
Contains the Karamouzas::Agent class Implements Karamouzas's 2009 pedestrian model "A Predictive Coll...
static float ORIENT_WEIGHT
Agent orientation is a weighted average between preferred direction and actual direction. This is that weight.
Definition: KaramouzasSimulator.h:103
static float WALL_DISTANCE
The safe distance agents prefer to keep from the walls.
Definition: KaramouzasSimulator.h:124
static float REACTION_TIME
The reaction time used to define the driving force.
Definition: KaramouzasSimulator.h:114
static int COLLIDING_COUNT
The number of agents considered in the colliding set.
Definition: KaramouzasSimulator.h:129
static float D_MAX
The distance at which there is no longer an agent response force.
Definition: KaramouzasSimulator.h:144
static float AGENT_FORCE
The level of response force in the constant region.
Definition: KaramouzasSimulator.h:149
virtual bool hasExpTarget()
Reports if there are non-common Experiment parameters that this simulator requires in the XML file...
Definition: KaramouzasSimulator.h:77
Simulator()
Constructor.
Definition: KaramouzasSimulator.h:69
Contains the specification of the pedestrian model from the Karamouzas et al., 2009 paper...
Definition: KaramouzasAgent.cpp:44
static float D_MID
The distance at which a constant agent response force begins.
Definition: KaramouzasSimulator.h:139