SimpleAI
 All Classes Namespaces Files Functions Variables Typedefs Macros Groups Pages
MoveVector.h
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include "Math.h"
7 
8 namespace ai {
9 
10 class MoveVector {
11 protected:
12  const glm::vec3 _vec3;
13  const float _rotation;
14 public:
15  MoveVector(const glm::vec3& vec3, float rotation) :
16  _vec3(vec3), _rotation(rotation) {
17  }
18 
19  MoveVector(const glm::vec3& vec3, double rotation) :
20  _vec3(vec3), _rotation(static_cast<float>(rotation)) {
21  }
22 
23  inline float getOrientation(float duration) const {
24  const float pi2 = glm::two_pi<float>();
25  const float rotation = _rotation + pi2;
26  return fmodf(rotation * duration, pi2);
27  }
28 
29  inline const glm::vec3& getVector() const {
30  return _vec3;
31  }
32 
33  inline glm::vec3 getVector() {
34  return _vec3;
35  }
36 
37  inline float getRotation() const {
38  return _rotation;
39  }
40 
41  inline operator glm::vec3() const {
42  return _vec3;
43  }
44 
45  inline operator const glm::vec3&() const {
46  return _vec3;
47  }
48 
49  inline operator float() const {
50  return _rotation;
51  }
52 };
53 
54 }
Definition: MoveVector.h:10