CellModules
movable.h
Go to the documentation of this file.
1#ifndef MOVABLE_H
2#define MOVABLE_H
4
5namespace MecaCell {
6class Movable {
7 protected:
12 bool movementEnabled = true;
14 double totalForce = 0;
15
16 public:
19 Movable(Vec pos, double m) : position(pos), mass(m) {}
20 /**********************************************
21 * GET & SET
22 **********************************************/
24 void disableMovement() { movementEnabled = false; }
26 Vec getPosition() const { return position; }
27 Vec getPrevposition() const { return prevposition; }
28 Vec getVelocity() const { return velocity; }
29 Vec getForce() const { return force; }
30 double getMass() const { return mass; }
31 void setPosition(const Vec &p) { position = p; }
32 void setPrevposition(const Vec &p) { prevposition = p; }
33 void setVelocity(const Vec &v) { velocity = v; }
34 void setForce(const Vec &f) { force = f; }
35 void setMass(const double m) { mass = m; }
36 /**********************************************
37 * UPDATES
38 **********************************************/
39 void receiveForce(const double &intensity, const Vec &direction,
40 const bool &compressive) {
41 force += direction * intensity;
42 totalForce += compressive ? intensity : -intensity;
43 }
44 void receiveForce(const Vec &f) { force += f; }
46 void resetForce() {
47 totalForce = 0;
48 force = Vec::zero();
49 }
50};
51}
52#endif
MecaCell::Vec pos
Definition: CellBody.hpp:34
double getMass() const
Definition: movable.h:30
Vec getPrevposition() const
Definition: movable.h:27
void setPosition(const Vec &p)
Definition: movable.h:31
bool movementEnabled
Definition: movable.h:12
void setForce(const Vec &f)
Definition: movable.h:34
void setVelocity(const Vec &v)
Definition: movable.h:33
void resetForce()
Definition: movable.h:46
void setMass(const double m)
Definition: movable.h:35
void receiveForce(const double &intensity, const Vec &direction, const bool &compressive)
Definition: movable.h:39
Vec getVelocity() const
Definition: movable.h:28
double totalForce
Definition: movable.h:14
void resetVelocity()
Definition: movable.h:45
void receiveForce(const Vec &f)
Definition: movable.h:44
void disableMovement()
Definition: movable.h:24
Movable(Vec pos, double m)
Definition: movable.h:19
Vec getPosition() const
Definition: movable.h:26
Movable(Vec pos)
Definition: movable.h:18
Vec getForce() const
Definition: movable.h:29
void enableMovement()
Definition: movable.h:25
bool isMovementEnabled()
Definition: movable.h:23
Vec prevposition
Definition: movable.h:9
void setPrevposition(const Vec &p)
Definition: movable.h:32
general purpose 3D vector/point class.
Definition: vector3D.h:20
static Vector3D zero()
constructs a zero vector
Definition: vector3D.h:170
this file contains various miscellanious utility functions & helpers *
static constexpr double DEFAULT_CELL_MASS
Definition: config.hpp:13