supertux
src
worldmap
camera.hpp
1
// SuperTux
2
// Copyright (C) 2018 Ingo Ruhnke <grumbel@gmail.com>
3
// 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>
4
//
5
// This program is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU General Public License for more details.
14
//
15
// You should have received a copy of the GNU General Public License
16
// along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18
#ifndef HEADER_SUPERTUX_WORLDMAP_CAMERA_HPP
19
#define HEADER_SUPERTUX_WORLDMAP_CAMERA_HPP
20
21
#include "math/vector.hpp"
22
23
namespace
worldmap
{
24
25
class
Camera
26
{
27
public
:
28
Camera
();
29
30
void
update(
float
dt_sec);
31
32
void
pan();
33
bool
is_panning()
const
{
return
m_panning; }
34
35
Vector
get_offset()
const
{
return
m_camera_offset; }
36
37
private
:
38
Vector
get_camera_pos_for_tux()
const
;
39
void
clamp_camera_position(
Vector
& c)
const
;
40
41
private
:
42
Vector
m_camera_offset;
43
45
Vector
m_pan_pos;
46
bool
m_panning;
47
48
private
:
49
Camera
(
const
Camera
&) =
delete
;
50
Camera
& operator=(
const
Camera
&) =
delete
;
51
};
52
53
}
// namespace worldmap
54
55
#endif
56
57
/* EOF */
Vector
Simple two dimensional vector.
Definition:
vector.hpp:24
worldmap::Camera
Definition:
camera.hpp:25
worldmap
Definition:
object_settings.hpp:28
Generated by
1.8.12