summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2016-01-11 12:03:44 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2016-01-11 12:13:37 +0100
commit9a6cdf08a8cd17acde43e61a1d530a9a7d7f2459 (patch)
tree304fe736c37433e0a98f1eac07669c6a5ca544f2
parent5771023404488e955f1b2ceca5f2da0a31e2310c (diff)
downloadMultimedia-9a6cdf08a8cd17acde43e61a1d530a9a7d7f2459.tar.gz
Multimedia-9a6cdf08a8cd17acde43e61a1d530a9a7d7f2459.zip
Add chessboard class
-rw-r--r--MM_2015_Base_Project.pro6
-rw-r--r--src/glchessboard.cpp32
-rw-r--r--src/glchessboard.h22
3 files changed, 58 insertions, 2 deletions
diff --git a/MM_2015_Base_Project.pro b/MM_2015_Base_Project.pro
index b7c6cb9..cd7717c 100644
--- a/MM_2015_Base_Project.pro
+++ b/MM_2015_Base_Project.pro
@@ -13,7 +13,8 @@ SOURCES += \
src/glbody.cpp \
src/glcube.cpp \
src/glsphere.cpp \
- src/gldisc.cpp
+ src/gldisc.cpp \
+ src/glchessboard.cpp
HEADERS += \
src/glcolorrgba.h \
@@ -26,7 +27,8 @@ HEADERS += \
src/glbody.h \
src/glcube.h \
src/glsphere.h \
- src/gldisc.h
+ src/gldisc.h \
+ src/glchessboard.h
RESOURCES += qml.qrc \
shaders.qrc \
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<GLCube> m_fields;
+
+ float m_width;
+ float m_height;
+};
+
+#endif // GLCHESSBOARD_H