28 virtual void localRender(QOpenGLFunctions& gl)
const override;
44 void renderPatch(QOpenGLFunctions& gl,
int iX,
int iZ)
const;
virtual void localRenderSetup(QOpenGLFunctions &gl, Program &program) const override
override this method to customize the rendering process
Definition: terrain.cpp:99
LevelConfiguration m_levelConfig
Definition: terrain.h:50
Track & rightTrack() const
Definition: terrain.cpp:54
std::unique_ptr< std::vector< GLfloat > > m_terrainMapData
Definition: terrain.h:55
void deallocateTerrainMap(QOpenGLFunctions &gl) const
Definition: terrain.cpp:155
The LevelConfiguration class contains all information necessary to configure a Level instance as well...
Definition: levelconfiguration.h:25
virtual void doForAllChildren(std::function< void(AbstractGraphicsObject &)> callback) override
override this method to make child objects known
Definition: terrain.cpp:66
The Level class is a generator for level data such as terrain geometry and track courses.
Definition: level.h:26
bool m_terrainMapOnGPU
Definition: terrain.h:56
virtual void localRenderCleanup(QOpenGLFunctions &gl, Program &program) const override
override this method to customize the rendering process
Definition: terrain.cpp:120
int m_currentPatchZ
Definition: terrain.h:61
virtual void localRender(QOpenGLFunctions &gl) const override
this method contains the default render code using m_geometry, m_program and m_material ...
Definition: terrain.cpp:78
std::unique_ptr< Track > m_leftTrack
Definition: terrain.h:53
std::unique_ptr< Track > m_rightTrack
Definition: terrain.h:52
The Terrain class renders the terrain using patches and a displacement texture. Patches that are too ...
Definition: terrain.h:23
The AbstractGraphicsObject class is the root of a class hierarchy of objects that contain independen ...
Definition: abstractgraphicsobject.h:27
bool m_terrainMapValid
Definition: terrain.h:57
int m_currentPatchX
Definition: terrain.h:60
The program class implements the basic functionality used for binding programs to openGL...
Definition: program.h:18
GLuint m_terrainMap
Definition: terrain.h:58
The World class represents a running game instance and contains all graphical (3D) elements of the sc...
Definition: world.h:46
void allocateTerrainMap(QOpenGLFunctions &gl) const
Definition: terrain.cpp:136
Definition: eventhandler.cpp:18
void configureWith(const Level &level)
sets the displacement texture and track courses according to level
Definition: terrain.cpp:126
void renderPatch(QOpenGLFunctions &gl, int iX, int iZ) const
Track & leftTrack() const
Definition: terrain.cpp:60
The Track class represents a track that a Train moves on. It is currently not rendered. The course is represented by a Polyline instance.
Definition: track.h:16
Terrain(World &world, const Level &level)
Definition: terrain.cpp:38