hx3d  1
2D/3D Simple Game Framework
function.hpp
1 /*
2  Simple math function.
3  Copyright (C) 2015 Denis BOURGE
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
18  USA
19 */
20 
21 #ifndef HX3D_MATH_FUNCTION
22 #define HX3D_MATH_FUNCTION
23 
24 #include <glm/vec2.hpp>
25 #include <functional>
26 
27 namespace hx3d {
28 namespace math {
29 
33 class Function {
34 
35 public:
48  Function(float init, float speed, std::function<void(float&, float&, float)> func);
49 
53  void reset();
54 
58  void step();
59 
65  glm::vec2 sample();
66 
67 private:
69  float _init;
71  float _speed;
73  float _t;
74 
76  std::function<void(float&, float&, float)> _func;
77 };
78 
79 } /* math */
80 } /* hx3d */
81 
82 #endif
void step()
Step the function time.
Definition: function.cpp:41
glm::vec2 sample()
Sample the current coordinates from the math function.
Definition: function.cpp:34
hx3d framework namespace
Definition: audio.hpp:26
Math function definition.
Definition: function.hpp:33
void reset()
Reset the function time.
Definition: function.cpp:30
Function(float init, float speed, std::function< void(float &, float &, float)> func)
Create a function from an initial time value, speed and a math function.
Definition: function.cpp:26