vOOlkan
An object oriented approach to Vulkan
Field.h
Go to the documentation of this file.
1#ifndef VULKAN_FIELD
2#define VULKAN_FIELD
3
4#include "Foundations.h"
5
6
7namespace Vulkan::Physics {
8 class Cinematicable;
9
13 class Field {
14 public:
15
22 Field(Position position, Force(*calculateForce)(const Position&, const Cinematicable&)) : position{ position }, calculateForce{ calculateForce } {
23
24 }
25
26
28 return position;
29 }
30
31
32 void setPosition(Position position) {
33 this->position = position;
34 }
35
36
44 return calculateForce(position, body);
45 }
46
47
48 private:
49 Position position;
50 std::function<Force(const Position&, const Cinematicable&)> calculateForce;
51 };
52
53}
54
55#endif
A Cinematicable object is a Movable object which obeys to physics laws.
Definition: Cinematicable.h:21
A force Field is an object which can interact with other objects with a force, defined by its calcula...
Definition: Field.h:13
void setPosition(Position position)
Definition: Field.h:32
Field(Position position, Force(*calculateForce)(const Position &, const Cinematicable &))
A force Field is identified by its position and a function.
Definition: Field.h:22
Force calculateAppliedForce(const Cinematicable &body)
Returns the force applied by the field to a body.
Definition: Field.h:43
Position getPosition() const
Definition: Field.h:27
Definition: Foundations.h:265
Definition: Foundations.h:187
Definition: Cinematicable.h:9