Bubba-3D  0.9.0
Awesome game engine!
MoveComponent.h
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 #pragma once
18 
19 #include "IComponent.h"
20 #include "linmath/float3.h"
21 #include "GameObject.h"
22 #include "HudRenderer.h"
23 #include <linmath/Quaternion.h>
24 
25 class MoveComponent : public IComponent {
26 public:
27  MoveComponent();
28  MoveComponent(GameObject* meshObject);
29  MoveComponent(GameObject* meshObject, chag::Quaternion rotationSpeed,
30  chag::float3 velocity, chag::float3 acceleration, chag::float3 scaleSpeed);
31 
32  virtual void update(float dt);
33 
34  chag::float3 getVelocity();
35  chag::float3 getAcceleration();
36  chag::Quaternion getRotationSpeed();
37  chag::float3 getScaleSpeed();
38 
39  void setVelocity(chag::float3 v);
40  void setAcceleration(chag::float3 a);
41  void setRotationSpeed(chag::Quaternion rs);
42  void setScaleSpeed(chag::float3 ss);
43 
44 protected:
45 
46  GameObject* meshObject;
47 
48 private:
49  chag::float3 velocity = chag::make_vector(0.0f, 0.0f, 0.0f);
50  chag::float3 acceleration = chag::make_vector(0.0f, 0.0f, 0.0f);
51  chag::Quaternion rotationSpeed;
52  chag::float3 scaleSpeed = chag::make_vector(0.0f,0.0f,0.0f);
53 };
A class for containing all information about a object in the game world.
Definition: GameObject.h:67