diff options
author | Mavridis Philippe <mavridisf@gmail.com> | 2024-08-07 19:13:02 +0300 |
---|---|---|
committer | Mavridis Philippe <mavridisf@gmail.com> | 2024-08-07 19:23:24 +0300 |
commit | 04b5a62b8d9f5ff8240f25361046f2a5d58e8262 (patch) | |
tree | 98b126454cdf68d544e138d7e8b31d5fd45b72c2 /kue/table.cpp | |
parent | 83ba00b7e569587d50383ff06a70148042ca780e (diff) | |
download | tdegames-feat/kue.tar.gz tdegames-feat/kue.zip |
Add Kue billiards gamefeat/kue
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
Diffstat (limited to 'kue/table.cpp')
-rw-r--r-- | kue/table.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/kue/table.cpp b/kue/table.cpp new file mode 100644 index 00000000..5f2f44ec --- /dev/null +++ b/kue/table.cpp @@ -0,0 +1,119 @@ +#include <GL/gl.h> +#include <GL/glu.h> +#include <tqstring.h> + +#include "table.h" +#include "graphics.h" + + +table::table() : _texture("table") { +} + +table::~table() { +} + + +void table::draw(double play_area_width, double play_area_height) +{ // The location of the head string + double head_string = play_area_width / 4.0; + + // Set the texture to the felt texture + _texture.makeCurrent(); + + glColor3d(0.1, 1.0, 0.1); + + glBegin(GL_QUADS); + + // Draw the table as a green textured square + glNormal3d(0.0, 0.0, 1.0); + + glTexCoord2d(0.0, 0.0); + glVertex2d(0.0, 0.0); + + glTexCoord2d(16.0, 0.0); + glVertex2d(play_area_width, 0.0); + + glTexCoord2d(16.0, 8.0); + glVertex2d(play_area_width, play_area_height); + + glTexCoord2d(0.0, 8.0); + glVertex2d(0.0, play_area_height); + + + // Draw the table as a green textured square + glNormal3d(0.0, 1.0, 0.0); + + glTexCoord2d(0.0, 1.0); + glVertex3d(0.0, 0.0, 0.0); + + glTexCoord2d(0.0, 0.0); + glVertex3d(0.0, 0.0, 0.005); + + glTexCoord2d(16.0, 1.0); + glVertex3d(play_area_width, 0.0, 0.005); + + glTexCoord2d(16.0, 0.0); + glVertex3d(play_area_width, 0.0, 0.0); + + + glNormal3d(0.0, -1.0, 0.0); + + glTexCoord2d(0.0, 0.0); + glVertex3d(0.0, play_area_height, 0.0); + + glTexCoord2d(0.0, 1.0); + glVertex3d(0.0, play_area_height, 0.005); + + glTexCoord2d(16.0, 0.0); + glVertex3d(play_area_width, play_area_height, 0.005); + + glTexCoord2d(16.0, 1.0); + glVertex3d(play_area_width, play_area_height, 0.0); + + glNormal3d(1.0, 0.0, 0.0); + + glTexCoord2d(0.0, 0.0); + glVertex3d(0.0, 0.0, 0.0); + + glTexCoord2d(0.0, 1.0); + glVertex3d(0.0, 0.0, 0.005); + + glTexCoord2d(16.0, 0.0); + glVertex3d(0.0, play_area_height, 0.005); + + glTexCoord2d(16.0, 1.0); + glVertex3d(0.0, play_area_height, 0.0); + + glNormal3d(-1.0, 0.0, 0.0); + + glTexCoord2d(0.0, 0.0); + glVertex3d(play_area_width, 0.0, 0.0); + + glTexCoord2d(0.0, 1.0); + glVertex3d(play_area_width, 0.0, 0.005); + + glTexCoord2d(16.0, 0.0); + glVertex3d(play_area_width, play_area_height, 0.005); + + glTexCoord2d(16.0, 1.0); + glVertex3d(play_area_width, play_area_height, 0.0); + + + glEnd(); + + // Draw the head string line on in a color slightly lighter than the table + glColor3d(0.2, 1.0, 0.2); + + glNormal3d(0.0, 0.0, 1.0); + + // Make the line two pixels thick + glLineWidth(2.0); + + // Actually draw the line + glBegin(GL_LINES); + + glVertex2d(head_string, 0.0); + glVertex2d(head_string, play_area_height); + + glEnd(); +} |