BioinstSim  2
 All Classes Functions Variables
testexperiment.h
1 #ifndef TESTEXPERIMENT_H_
2 #define TESTEXPERIMENT_H_
3 
4 /******************************************************************************/
5 /******************************************************************************/
6 
7 #include "experiment.h"
8 
9 #include "robotagent.h"
10 #include "robotagent_optimised.h"
11 
12 /******************************************************************************/
13 /******************************************************************************/
14 
15 #define OPTIMISEDCRM
16 
17 /******************************************************************************/
18 /******************************************************************************/
19 
20 enum ESwarmBehavType
21 {
22  AGGREGATION,
23  DISPERSION,
24  FLOCKING,
25  HOMING1,
26  HOMING2,
27 
28  STRAIGHTLINE,
29  RANDOMWK,
30  CIRCLE,
31  STOP,
32 
33  NOERR
34 };
35 
36 /*enum EErrorBehavType
37 {
38  STRAIGHTLINE,
39  RANDOMWK,
40  CIRCLE,
41  STOP,
42 
43  STRAIGHTLINE,
44  RANDOMWK,
45  CIRCLE,
46  STOP,
47 
48  NOERR
49 };*/
50 
52 {
53 public:
54  CTestExperiment(CArguments* pc_experiment_arguments,
55  CArguments* pc_arena_arguments,
56  CArguments* pc_agent_arguments,
57  CArguments* pc_model_arguments);
58  ~CTestExperiment();
59 
60  virtual CAgent* CreateAgent();
61  virtual void SimulationStep(unsigned int un_step_number);
62 
63 protected:
64  virtual void PrintStatsForAgent(CAgent* pc_agent);
65  virtual void PrintVelocityDifference(CAgent* pc_agent, double f_range);
66  vector<CBehavior*> GetAgentBehavior(ESwarmBehavType swarmbehavType, CAgent* previousAgent);
67 
68  ESwarmBehavType m_eswarmbehavType, m_eerrorbehavType;
69  //EErrorBehavType m_eerrorbehavType;
70 
71  unsigned int m_unMisbehaveStep;
72  unsigned int m_unNormalAgentToTrack;
73  unsigned int m_unAbnormalAgentToTrack;
74  unsigned int m_unNumAbnormalAgents;
75  int m_iSwitchNormalBehavior;
76 
77 #ifdef OPTIMISEDCRM
78  CRobotAgentOptimised* m_pcMisbehaveAgent[20];
79  CRobotAgentOptimised* m_pcNormalAgentToTrack;
80 #else
81  CRobotAgent* m_pcMisbehaveAgent[20];
82  CRobotAgent* m_pcNormalAgentToTrack;
83 #endif
84 
85  CAgent** m_ppcListAgentsCreated;
86 
87  CAgent* pcHomeToAgent;
88 
89 
90 };
91 
92 /******************************************************************************/
93 /******************************************************************************/
94 
95 #endif