summaryrefslogtreecommitdiff
path: root/agent.hpp
blob: f99c2ab7a66f6fdd1f52ff25d781d43497a818d3 (plain)
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
// -*- mode: c++ -*-

#ifndef AGENT_HPP
#define AGENT_HPP

#include "header.hpp"
#include "cell.hpp"
#include "mesh.hpp"

class Agent
{

public:

  Agent();

  void set_cell_index(int value);
  void set_domain(int value, size_t step);
  void set_path(double x, double y, double z, size_t step);
  double get_path(size_t step, size_t index);
  int get_domain(size_t step);
  double get_timestepsize();
  double get_time(size_t step);

  void advance(Mesh* mesh, size_t step);

private:

  int cell_index;
  double time_step_size;

  std::vector<int> domain;
  std::vector<double> time;
  std::vector<std::vector<double>> path;

  void advance_surface(Mesh *mesh, size_t step);
  void advance_subsurface(Mesh *mesh, size_t step);
  
};

#endif