LibCarna Version 3.4.0
Loading...
Searching...
No Matches
CameraControl.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010 - 2016 Leonid Kostrykin
3 *
4 * Chair of Medical Engineering (mediTEC)
5 * RWTH Aachen University
6 * Pauwelsstr. 20
7 * 52074 Aachen
8 * Germany
9 *
10 *
11 * Copyright (C) 2021 - 2025 Leonid Kostrykin
12 *
13 */
14
15#ifndef CAMERACONTROL_H_6014714286
16#define CAMERACONTROL_H_6014714286
17
18#include <LibCarna/LibCarna.hpp>
19
25namespace LibCarna
26{
27
28namespace base
29{
30
31
32
33// ----------------------------------------------------------------------------------
34// CameraControl
35// ----------------------------------------------------------------------------------
36
42class LIBCARNA CameraControl
43{
44
46
47public:
48
52 virtual ~CameraControl();
53
57 virtual void setCamera( Spatial& camera ) = 0;
58
63 virtual void rotateHorizontally( float radians ) = 0;
64
69 virtual void rotateVertically( float radians ) = 0;
70
75 virtual void moveAxially( float distance ) = 0;
76
81 virtual void moveLaterally( float distanceX, float distanceY ) = 0;
82
83}; // CameraControl
84
85
86
87} // namespace LibCarna :: base
88
89} // namespace LibCarna
90
91
92
93#endif // CAMERACONTROL_H_6014714286
Contains forward-declarations.
Represents an association.
Defines interface for intuitive Camera control.
virtual void moveLaterally(float distanceX, float distanceY)=0
Moves the camera along its x-/y-axis. The parameters of this movement depend on the implementation.
virtual void moveAxially(float distance)=0
Moves the camera along its z-axis. The parameters of this movement depend on the implementation.
virtual void setCamera(Spatial &camera)=0
Sets the camera that this object should control.
virtual void rotateVertically(float radians)=0
Rotates the previously set camera vertically. The rotation axis depends on the implementation.
virtual ~CameraControl()
Does nothing.
virtual void rotateHorizontally(float radians)=0
Rotates the previously set camera horizontally. The rotation axis depends on the implementation.
Represents a spatial scene element. It's location is determined relatively to another spatial that is...
Definition Spatial.hpp:48
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.