LibCarna Version 3.4.0
Loading...
Searching...
No Matches
CameraShowcaseControl.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 CAMERASHOWCASECONTROL_H_6014714286
16#define CAMERASHOWCASECONTROL_H_6014714286
17
18#include <LibCarna/LibCarna.hpp>
20#include <memory>
21
27namespace LibCarna
28{
29
30namespace presets
31{
32
33
34
35// ----------------------------------------------------------------------------------
36// CameraShowcaseControl
37// ----------------------------------------------------------------------------------
38
49{
50
52
53 struct Details;
54 const std::unique_ptr< Details > pimpl;
55
56public:
57
61 const static float DEFAULT_MIN_DISTANCE;
62
66 const static float DEFAULT_MAX_DISTANCE;
67
72
77
85 void setMinDistance( float minDistance );
86
94 void setMaxDistance( float maxDistance );
95
99 float minDistance() const;
100
104 float maxDistance() const;
105
109 virtual void setCamera( base::Spatial& ) override;
110
115 virtual void rotateHorizontally( float radians ) override;
116
121 virtual void rotateVertically( float radians ) override;
122
128 virtual void moveAxially( float units ) override;
129
130 virtual void moveLaterally( float unitsX, float unitsY ) override;
131
132}; // CameraShowcaseControl
133
134
135
136} // namespace LibCarna :: presets
137
138} // namespace LibCarna
139
140
141
142#endif // CAMERASHOWCASECONTROL_H_6014714286
Defines LibCarna::base::CameraControl.
Contains forward-declarations.
Defines interface for intuitive Camera control.
Represents a spatial scene element. It's location is determined relatively to another spatial that is...
Definition Spatial.hpp:48
Implements base::CameraControl, rotates the camera around its parent node. The camera movement is bou...
virtual void rotateVertically(float radians) override
Rotates the camera around its local vector, shifted to its origin, by radians.
float minDistance() const
Tells minimum allowed distance of camera to its origin.
static const float DEFAULT_MIN_DISTANCE
Holds default minimum allowed distance of the camera to its origin.
void setMaxDistance(float maxDistance)
Disallows the camera to move further away than maxDistance from its origin. If the camera currently i...
void setMinDistance(float minDistance)
Disallows the camera to move closer than minDistance to its origin. If the camera currently is closer...
virtual void setCamera(base::Spatial &) override
Sets the node that is to be controlled by this instance.
virtual void rotateHorizontally(float radians) override
Rotates the camera around the vector of its origin by radians.
static const float DEFAULT_MAX_DISTANCE
Holds default maximum allowed distance of the camera to its origin.
virtual void moveAxially(float units) override
Moves the camera along its local vector by units. The location is bounded by the current values for ...
float maxDistance() const
Tells maximum allowed distance of camera to its origin.
virtual void moveLaterally(float unitsX, float unitsY) override
Moves the camera along its x-/y-axis. The parameters of this movement depend on the implementation.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.