-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVisualAgent.h
More file actions
52 lines (41 loc) · 1.17 KB
/
VisualAgent.h
File metadata and controls
52 lines (41 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// ***********************************************************
// A class for visual agents
//
// Matthew Setzler 4/19/17
// ************************************************************
#include "CTRNN.h"
#include "VisualObject.h"
// Global constants
const double Pi = 3.1415926535897;
const double BodySize = 30.0; // diameter of agent
const double EnvWidth = 400.0;
const double MaxRayLength = 220.0;
const double InputGain = 10.0;
const double VisualAngle = Pi/6;
const double VelGain = 5;
// The VisualAgent class declaration
class VisualAgent {
public:
// The constructor
VisualAgent(double ix = 0.0, double iy = 0.0, int NumRays_ = 7) {
NumRays = NumRays_;
Rays.SetBounds(1, NumRays);
Reset(ix,iy);
};
// The destructor
~VisualAgent() {}
// Accessors
double PositionX() {return cx;};
void SetPositionX(double newx);
double PositionY() {return cy;};
// Control
void Reset(double ix, double iy, int randomize = 0);
void Reset(RandomState &rs, double ix, double iy, int randomize);
void Step(double StepSize, VisualObject &object);
CTRNN NervousSystem;
private:
void ResetRays();
int NumRays;
double cx, cy, vx;
TVector<Ray> Rays;
};