Voxellancer  0.3
A game about voxels in space
 All Classes Functions Pages
boardcomputer.h
1 #pragma once
2 
3 #include <vector>
4 #include <list>
5 
6 #include <glm/glm.hpp>
7 #include <glm/gtx/quaternion.hpp>
8 
9 #include "equipment/enginestate.h"
10 
11 #include "utils/handle/handle.h"
12 
13 class WorldObject;
14 
20 public:
21  BoardComputer(WorldObject* worldObject);
22 
23  WorldObject* worldObject();
24 
25  const EngineState& engineState() const;
26 
27  void moveTo(const glm::vec3& position, bool decelerate = true);
28  void rotateTo(const glm::vec3& position, const glm::vec3& up = glm::vec3(0, 0, 0));
29 
30  void shootBullet(const std::vector<Handle<WorldObject>>& targets);
31  void shootRockets(Handle<WorldObject>& target);
32 
33  void update(float deltaSec);
34 
35 
36 protected:
37  WorldObject* m_worldObject;
38  EngineState m_engineState;
39  bool m_overwriteEngineState;
40 
41  /* Return the euler angles needed to adjust 'up' */
42  glm::vec3 rotateUpTo(const glm::vec3& up);
43  glm::vec3 rotateUpAuto(const glm::quat& rotation);
44 };
45 
46 
Definition: worldobject.h:43
Definition: boardcomputer.h:19
Definition: abstractmove.h:5