5 #include <QQmlListProperty>
7 class QOpenGLFunctions;
8 class QOpenGLShaderProgram;
36 explicit Scene(QQuickItem *parent = 0);
88 virtual void update(
int elapsedTime);
void handleGameLost()
Definition: scene.cpp:42
AbstractGem * findGemIntersectedBy(const LightRay &ray, QVector3D *collisionPoint=nullptr) const
Finds the nearest gem with bounding sphere intersected by given ray.
Definition: scene.cpp:102
The LightRay class describes the lightrays sent into Scene. Because LightRays are sent into Scene ri...
Definition: lightray.h:24
void registerNavigation(Navigation *navigation)
Definition: scene.cpp:57
void setPreviewCamera(Camera *camera)
Definition: scene.cpp:87
The Triangle class represents a triangle in three dimensional space.
Definition: triangle.h:11
Scene(QQuickItem *parent=0)
Creates a new scene without any further information. Before use scene you have to set geometries()...
Definition: scene.cpp:16
virtual ~Scene()
Definition: scene.cpp:27
void setCamera(Camera *camera)
Definition: scene.cpp:77
AbstractGem * m_currentGem
Definition: scene.h:100
The Camera class provides view and perspective projection matrices. Additional the viewport of camera...
Definition: camera.h:16
AbstractGem * findGemWithBoundingSphereIntersectedBy(const LightRay &ray, QVector3D *collisionPoint=nullptr) const
Finds the nearest gem, that bounding sphere is intersected by given ray.
Definition: scene.cpp:121
void handleGameStarted()
Definition: scene.cpp:47
void cubesChanged()
Definition: moc_scene.cpp:194
The Scene class provides access to geometry and collision detection methods. Furthermore, some game logic is implemented, so the scene holds the player, the gem influenced by player and cameras.
Definition: scene.h:22
Camera * m_previewCamera
Definition: scene.h:99
LightRay * rootLightRay() const
Navigation * m_navigation
Definition: scene.h:102
virtual void update(int elapsedTime)
Definition: scene.cpp:37
QList< AbstractGem * > m_gems
Definition: scene.h:101
The Navigation class provides an interface for all navigation techniques. The navigation takes euler...
Definition: navigation.h:16
Camera * previewCamera() const
SceneBounds * m_bounds
Definition: scene.h:97
QList< AbstractGem * > geometries()
The SceneBounds class is a special kind of gem describing the bounds of scene. The shape of the bound...
Definition: scenebounds.h:17
void setRootLightRay(LightRay *rootLightRay)
Definition: scene.cpp:97
LightRay * m_rootLightRay
Definition: scene.h:103
The AbstractGem class is the base class of all gems. As base class all required information of a gem...
Definition: abstractgem.h:39
QQmlListProperty< AbstractGem > geometriesQML()
Allow QML classes to read our gems. Initially it was planned to manipulate our gems from QML classes...
Definition: scene.cpp:52
void rotateCurrentGem(const QQuaternion &quaternion)
Definition: scene.cpp:67
Camera * m_camera
Definition: scene.h:98
void rootLightRayChanged()
void setCurrentGem(AbstractGem *currentGem)
Sets the gem, that will be controlled by player.
Definition: scene.cpp:140