-#ifndef STATE_MANAGER_H_
-#define STATE_MANAGER_H_
-
-#include <gmath/gmath.h>
-#include <map>
-
-#include <string>
-#include <vector>
-
-struct State {
- int num;
- char *name;
- float *data;
-};
-
-class StateManager {
-private:
- std::map<std::string, int> statemap;
- State *get_state(const char *name);
-
-public:
- std::vector<State> states;
-
- /*
- adds a state returns an idx:
- the num_floats indicates the number of floats that form
- the state element.
- For example:
- a float value consists of 1 float => num_floats = 1,
- a Vec2 consists of 2 floats, a Vec3 from 3, a Vec4 from 4
-
- see also:
- set_state(const char *name, const Mat4 &mat implementation)
- */
- int add_state_element(const char *name, int num_floats);
-
- void set_state(const char *name, float value);
- void set_state(const char *name, const Vec3 &vec);
- void set_state(const char *name, const Vec4 &vec);
- void set_state(const char *name, const Mat4 &mat);
-
- const State *get_state(const char *name) const;
- const State *get_state(int idx) const;
-};
-
-extern StateManager state_manager;
-
-#endif // STATE_MANAGER_H_
\ No newline at end of file