Gamedev Framework (gf)
0.16.0
A C++14 framework for 2D games
include
gf
PhysicsModel.h
1
/*
2
* Gamedev Framework (gf)
3
* Copyright (C) 2016-2019 Julien Bernard
4
*
5
* This software is provided 'as-is', without any express or implied
6
* warranty. In no event will the authors be held liable for any damages
7
* arising from the use of this software.
8
*
9
* Permission is granted to anyone to use this software for any purpose,
10
* including commercial applications, and to alter it and redistribute it
11
* freely, subject to the following restrictions:
12
*
13
* 1. The origin of this software must not be misrepresented; you must not
14
* claim that you wrote the original software. If you use this software
15
* in a product, an acknowledgment in the product documentation would be
16
* appreciated but is not required.
17
* 2. Altered source versions must be plainly marked as such, and must not be
18
* misrepresented as being the original software.
19
* 3. This notice may not be removed or altered from any source distribution.
20
*/
21
#ifndef GF_PHYSICS_MODEL_H
22
#define GF_PHYSICS_MODEL_H
23
24
#include <vector>
25
26
#include "Model.h"
27
#include "Ref.h"
28
#include "Vector.h"
29
30
namespace
gf
{
31
#ifndef DOXYGEN_SHOULD_SKIP_THIS
32
inline
namespace
v1 {
33
#endif
34
35
class
PhysicsBody;
36
43
class
GF_API
PhysicsModel
:
public
gf::Model
{
44
public
:
50
PhysicsModel
(
Vector2f
gravity = { 0.0f, 0.0f });
51
57
void
setGravity
(
Vector2f
gravity) noexcept {
58
m_gravity = gravity;
59
}
60
66
Vector2f
getGravity
() const noexcept {
67
return
m_gravity;
68
}
69
75
void
addBody(
PhysicsBody
& body);
76
82
void
removeBody(
PhysicsBody
& body);
83
87
void
clear();
88
89
virtual
void
update(
Time
time)
override
;
90
91
private
:
92
Vector2f
m_gravity;
93
std::vector<Ref<PhysicsBody>> m_staticBodies;
94
std::vector<Ref<PhysicsBody>> m_dynamicBodies;
95
};
96
97
#ifndef DOXYGEN_SHOULD_SKIP_THIS
98
}
99
#endif
100
}
101
102
#endif // GF_PHYSICS_MODEL_H
gf::PhysicsBody
A physics body.
Definition:
PhysicsBody.h:56
gf::Time
Represents a time value.
Definition:
Time.h:65
gf::Model
A game object that can be updated.
Definition:
Model.h:46
gf::PhysicsModel::setGravity
void setGravity(Vector2f gravity) noexcept
Set the gravity of the simulation.
Definition:
PhysicsModel.h:57
gf
The namespace for gf classes.
Definition:
Action.h:35
gf::PhysicsModel
A model for physics simulation.
Definition:
PhysicsModel.h:43
gf::PhysicsModel::getGravity
Vector2f getGravity() const noexcept
Get the gravity of the simulation.
Definition:
PhysicsModel.h:66
gf::Vector< float, 2 >
Generated by
1.8.13