FastEngine
0.9.3
A multiplayer oriented 2D engine made with Vulkan.
Loading...
Searching...
No Matches
includes
FastEngine
graphic
C_transformable.hpp
1
/*
2
* Copyright 2024 Guillaume Guillet
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef _FGE_GRAPHIC_C_TRANSFORMABLE_HPP_INCLUDED
18
#define _FGE_GRAPHIC_C_TRANSFORMABLE_HPP_INCLUDED
19
20
/*
21
* Original from : https://github.com/SFML/SFML
22
* Copyright (C) 2007-2022 Laurent Gomila
23
*
24
* Altered/Modified by Guillaume Guillet
25
*/
26
27
#include "FastEngine/fge_extern.hpp"
28
#include "FastEngine/C_vector.hpp"
29
30
namespace
fge
31
{
32
33
class
FGE_API
Transformable
34
{
35
public
:
36
Transformable
();
37
virtual
~Transformable
() =
default
;
38
39
void
setPosition(Vector2f
const
& position);
40
Vector2f
const
& getPosition()
const
;
41
void
move(Vector2f
const
& offset);
42
43
void
setRotation(
float
angle);
44
float
getRotation()
const
;
45
void
rotate(
float
angle);
46
47
void
setScale(Vector2f
const
& factors);
48
void
setScale(
float
factor);
49
Vector2f
const
& getScale()
const
;
50
void
scale(Vector2f
const
& factor);
51
void
scale(
float
factor);
52
53
void
setOrigin(Vector2f
const
& origin);
54
Vector2f
const
& getOrigin()
const
;
55
56
glm::mat4
const
& getTransform()
const
;
57
glm::mat4
const
& getInverseTransform()
const
;
58
59
private
:
60
Vector2f g_origin;
61
Vector2f g_position;
62
float
g_rotation;
63
Vector2f g_scale;
64
mutable
glm::mat4 g_transform;
65
mutable
bool
g_transformNeedUpdate;
66
mutable
glm::mat4 g_inverseTransform;
67
mutable
bool
g_inverseTransformNeedUpdate;
68
};
69
70
}
// namespace fge
71
72
73
#endif
// _FGE_GRAPHIC_C_TRANSFORMABLE_HPP_INCLUDED
fge::Transformable
Definition
C_transformable.hpp:34
Generated by
1.12.0