From 9a6cdf08a8cd17acde43e61a1d530a9a7d7f2459 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Mon, 11 Jan 2016 12:03:44 +0100 Subject: Add chessboard class --- src/glchessboard.cpp | 32 ++++++++++++++++++++++++++++++++ src/glchessboard.h | 22 ++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 src/glchessboard.cpp create mode 100644 src/glchessboard.h (limited to 'src') diff --git a/src/glchessboard.cpp b/src/glchessboard.cpp new file mode 100644 index 0000000..afab9e8 --- /dev/null +++ b/src/glchessboard.cpp @@ -0,0 +1,32 @@ +#include "glchessboard.h" + +GLChessboard::GLChessboard(float width, float height) +{ + m_width = width; + m_height = height; +} + +void GLChessboard::createBoard() +{ + double fieldWidth = m_width / 8; + double fieldHeight = m_height / 8; + + for(int fieldY = 0; fieldY < 8; fieldY++) + { + for(int fieldX = 0; fieldX < 8; fieldX++) + { + if((fieldY+fieldX) % 2) + { + m_fields.append(GLCube(QVector3D(fieldX * fieldWidth, fieldY * fieldHeight, 0.0), QVector3D((fieldX + 1) * fieldWidth, (fieldY + 1) * fieldHeight, 0.0))); + } + } + } +} + +void GLChessboard::drawBoard(GLESRenderer *renderer) +{ + foreach(GLCube field, m_fields) + { + field.draw(renderer); + } +} diff --git a/src/glchessboard.h b/src/glchessboard.h new file mode 100644 index 0000000..c761aa8 --- /dev/null +++ b/src/glchessboard.h @@ -0,0 +1,22 @@ +#ifndef GLCHESSBOARD_H +#define GLCHESSBOARD_H + +#include "glcube.h" + +class GLChessboard +{ +public: + GLChessboard(float width, float height); + + void createBoard(); + + void drawBoard(GLESRenderer *renderer); + +private: + QVector m_fields; + + float m_width; + float m_height; +}; + +#endif // GLCHESSBOARD_H -- cgit v1.2.3-70-g09d2