-
Notifications
You must be signed in to change notification settings - Fork 2
/
Particle.h
64 lines (52 loc) · 1.39 KB
/
Particle.h
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
53
54
55
56
57
58
59
60
61
62
63
/*
Author: Blake
Date: 11/8/17
Req. Files: point.h
*/
#ifndef __PARTICLE_H__
#define __PARTICLE_H__
#include "Point.h"
#include "Random.h"
#include <memory>
#include <iostream>
#include <cmath>
class Cell;
typedef std::shared_ptr<Cell> Cell_ptr;
class Particle
{
private:
bool alive;
point pos;
point dir;
Cell_ptr cell; //still need to change this
int group;
int collisionCounter;
public:
//constructor
Particle(point posi, point diri, int gi);
Particle( const Particle &p );
~Particle() {};
//functions
// gets
bool isAlive() const { return(alive); };
Cell_ptr getCell() const { return(cell); };
point getPos() const { return(pos); };
point getDir() const { return(dir); };
int getGroup() const { return(group); };
int getNumCollisions() const { return(collisionCounter); };
// sets
void countCollision() {collisionCounter++; };
void setCell(Cell_ptr celli);
void setGroup(int g);
void setPos(point posi);
void setDir(point diri);
void setPos(double xi, double yi, double zi);
void setDir(double ui, double vi, double wi);
void move(double dist);
void kill();
void scatter( int gf );
void rotate( double mu0, double rand );
// prints
void printState();
};
#endif