ImagingTools Core SDK
IScene3dCamera.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtGui/QVector3D>
7#include <QtGui/QQuaternion>
8#include <QtGui/QMatrix4x4>
9
10// ACF includes
11#include <istd/IPolymorphic.h>
12
13// Imt includes
14#include <imt3d/CCuboid.h>
15
16namespace imt3dview
17{
18
19
23class IScene3dCamera: virtual public istd::IPolymorphic
24{
25public:
26
27 virtual const QVector3D& GetPosition() const = 0;
28 virtual void MoveTo(const QVector3D& position) = 0;
29 virtual void MoveTo(const QPoint& pointFrom, const QPoint& pointTo) = 0;
30
31 virtual const QQuaternion& GetRotation() const = 0;
32 virtual void RotateTo(const QQuaternion& rotation) = 0;
33 virtual void RotateTo(const QPoint& pointFrom, const QPoint& pointTo, const QVector3D& axis = QVector3D()) = 0;
34 virtual void RotateAround(const QVector3D& axis, float angle) = 0;
35
36 virtual void ZoomIn() = 0;
37 virtual void ZoomOut() = 0;
38 virtual QMatrix4x4 GetViewMatrix() const = 0;
39
40 virtual void SetBoundingCuboid(const imt3d::CCuboid& cuboid) = 0;
41 virtual imt3d::CCuboid GetBoundingCuboid() const = 0;
42};
43
44
45} // namespace imt3dview
46
47