summaryrefslogtreecommitdiff
path: root/test/CubeView.cxx
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2021-05-21 19:56:11 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2021-05-21 20:08:12 +0200
commitda4d16b59ab354e9c1fc944e814519bd8e251922 (patch)
tree704b160807e843c1408128011321b6e962ffc782 /test/CubeView.cxx
parentcbee4880f45c6629d597bed27acba05e100bbaed (diff)
Update fluid tutorial on CubeView and demo code
Format code according to the CMP, add instructions on how to copy the code to the fluid tutorial, and update the tutorial with the current code of test/CubeView.h and test/CubeView.cxx.
Diffstat (limited to 'test/CubeView.cxx')
-rw-r--r--test/CubeView.cxx246
1 files changed, 127 insertions, 119 deletions
diff --git a/test/CubeView.cxx b/test/CubeView.cxx
index fda542aa0..f2890d569 100644
--- a/test/CubeView.cxx
+++ b/test/CubeView.cxx
@@ -1,7 +1,7 @@
//
// CubeView class implementation for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -14,40 +14,45 @@
// https://www.fltk.org/bugs.php
//
+// Note to editor: the following code can and should be copied
+// to the fluid tutorial in 'documentation/src/fluid.dox'
+// *without* '#if HAVE_GL' preprocessor statements, leaving
+// only those parts where the condition is true.
+
+// [\code in documentation/src/fluid.dox]
#include "CubeView.h"
#include <math.h>
-
#if HAVE_GL
-CubeView::CubeView(int x,int y,int w,int h,const char *l)
- : Fl_Gl_Window(x,y,w,h,l)
+CubeView::CubeView(int x, int y, int w, int h, const char *l)
+ : Fl_Gl_Window(x, y, w, h, l)
#else
-CubeView::CubeView(int x,int y,int w,int h,const char *l)
- : Fl_Box(x,y,w,h,l)
+CubeView::CubeView(int x, int y, int w, int h, const char *l)
+ : Fl_Box(x, y, w, h, l)
#endif /* HAVE_GL */
{
- Fl::use_high_res_GL(1);
- vAng = 0.0;
- hAng=0.0;
- size=10.0;
- xshift=0.0;
- yshift=0.0;
-
- /* The cube definition. These are the vertices of a unit cube
- * centered on the origin.*/
-
- boxv0[0] = -0.5; boxv0[1] = -0.5; boxv0[2] = -0.5;
- boxv1[0] = 0.5; boxv1[1] = -0.5; boxv1[2] = -0.5;
- boxv2[0] = 0.5; boxv2[1] = 0.5; boxv2[2] = -0.5;
- boxv3[0] = -0.5; boxv3[1] = 0.5; boxv3[2] = -0.5;
- boxv4[0] = -0.5; boxv4[1] = -0.5; boxv4[2] = 0.5;
- boxv5[0] = 0.5; boxv5[1] = -0.5; boxv5[2] = 0.5;
- boxv6[0] = 0.5; boxv6[1] = 0.5; boxv6[2] = 0.5;
- boxv7[0] = -0.5; boxv7[1] = 0.5; boxv7[2] = 0.5;
+ Fl::use_high_res_GL(1);
+ vAng = 0.0;
+ hAng = 0.0;
+ size = 10.0;
+ xshift = 0.0;
+ yshift = 0.0;
+
+ /* The cube definition. These are the vertices of a unit cube
+ * centered on the origin.*/
+
+ boxv0[0] = -0.5; boxv0[1] = -0.5; boxv0[2] = -0.5;
+ boxv1[0] = 0.5; boxv1[1] = -0.5; boxv1[2] = -0.5;
+ boxv2[0] = 0.5; boxv2[1] = 0.5; boxv2[2] = -0.5;
+ boxv3[0] = -0.5; boxv3[1] = 0.5; boxv3[2] = -0.5;
+ boxv4[0] = -0.5; boxv4[1] = -0.5; boxv4[2] = 0.5;
+ boxv5[0] = 0.5; boxv5[1] = -0.5; boxv5[2] = 0.5;
+ boxv6[0] = 0.5; boxv6[1] = 0.5; boxv6[2] = 0.5;
+ boxv7[0] = -0.5; boxv7[1] = 0.5; boxv7[2] = 0.5;
#if !HAVE_GL
- label("OpenGL is required for this demo to operate.");
- align(FL_ALIGN_WRAP | FL_ALIGN_INSIDE);
+ label("OpenGL is required for this demo to operate.");
+ align(FL_ALIGN_WRAP | FL_ALIGN_INSIDE);
#endif /* !HAVE_GL */
}
@@ -55,105 +60,108 @@ CubeView::CubeView(int x,int y,int w,int h,const char *l)
void CubeView::drawCube() {
/* Draw a colored cube */
#define ALPHA 0.5
- glShadeModel(GL_FLAT);
-
- glBegin(GL_QUADS);
- glColor4f(0.0, 0.0, 1.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv1);
- glVertex3fv(boxv2);
- glVertex3fv(boxv3);
-
- glColor4f(1.0, 1.0, 0.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
- glVertex3fv(boxv1);
-
- glColor4f(0.0, 1.0, 1.0, ALPHA);
- glVertex3fv(boxv2);
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
- glVertex3fv(boxv3);
-
- glColor4f(1.0, 0.0, 0.0, ALPHA);
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
-
- glColor4f(1.0, 0.0, 1.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv3);
- glVertex3fv(boxv7);
- glVertex3fv(boxv4);
-
- glColor4f(0.0, 1.0, 0.0, ALPHA);
- glVertex3fv(boxv1);
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
- glVertex3fv(boxv2);
- glEnd();
-
- glColor3f(1.0, 1.0, 1.0);
- glBegin(GL_LINES);
- glVertex3fv(boxv0);
- glVertex3fv(boxv1);
-
- glVertex3fv(boxv1);
- glVertex3fv(boxv2);
-
- glVertex3fv(boxv2);
- glVertex3fv(boxv3);
-
- glVertex3fv(boxv3);
- glVertex3fv(boxv0);
-
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
-
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
-
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
-
- glVertex3fv(boxv7);
- glVertex3fv(boxv4);
-
- glVertex3fv(boxv0);
- glVertex3fv(boxv4);
-
- glVertex3fv(boxv1);
- glVertex3fv(boxv5);
-
- glVertex3fv(boxv2);
- glVertex3fv(boxv6);
-
- glVertex3fv(boxv3);
- glVertex3fv(boxv7);
- glEnd();
-}//drawCube
+ glShadeModel(GL_FLAT);
+
+ glBegin(GL_QUADS);
+ glColor4f(0.0, 0.0, 1.0, ALPHA);
+ glVertex3fv(boxv0);
+ glVertex3fv(boxv1);
+ glVertex3fv(boxv2);
+ glVertex3fv(boxv3);
+
+ glColor4f(1.0, 1.0, 0.0, ALPHA);
+ glVertex3fv(boxv0);
+ glVertex3fv(boxv4);
+ glVertex3fv(boxv5);
+ glVertex3fv(boxv1);
+
+ glColor4f(0.0, 1.0, 1.0, ALPHA);
+ glVertex3fv(boxv2);
+ glVertex3fv(boxv6);
+ glVertex3fv(boxv7);
+ glVertex3fv(boxv3);
+
+ glColor4f(1.0, 0.0, 0.0, ALPHA);
+ glVertex3fv(boxv4);
+ glVertex3fv(boxv5);
+ glVertex3fv(boxv6);
+ glVertex3fv(boxv7);
+
+ glColor4f(1.0, 0.0, 1.0, ALPHA);
+ glVertex3fv(boxv0);
+ glVertex3fv(boxv3);
+ glVertex3fv(boxv7);
+ glVertex3fv(boxv4);
+
+ glColor4f(0.0, 1.0, 0.0, ALPHA);
+ glVertex3fv(boxv1);
+ glVertex3fv(boxv5);
+ glVertex3fv(boxv6);
+ glVertex3fv(boxv2);
+ glEnd();
+
+ glColor3f(1.0, 1.0, 1.0);
+ glBegin(GL_LINES);
+ glVertex3fv(boxv0);
+ glVertex3fv(boxv1);
+
+ glVertex3fv(boxv1);
+ glVertex3fv(boxv2);
+
+ glVertex3fv(boxv2);
+ glVertex3fv(boxv3);
+
+ glVertex3fv(boxv3);
+ glVertex3fv(boxv0);
+
+ glVertex3fv(boxv4);
+ glVertex3fv(boxv5);
+
+ glVertex3fv(boxv5);
+ glVertex3fv(boxv6);
+
+ glVertex3fv(boxv6);
+ glVertex3fv(boxv7);
+
+ glVertex3fv(boxv7);
+ glVertex3fv(boxv4);
+
+ glVertex3fv(boxv0);
+ glVertex3fv(boxv4);
+
+ glVertex3fv(boxv1);
+ glVertex3fv(boxv5);
+
+ glVertex3fv(boxv2);
+ glVertex3fv(boxv6);
+
+ glVertex3fv(boxv3);
+ glVertex3fv(boxv7);
+ glEnd();
+} // drawCube
void CubeView::draw() {
- if (!valid()) {
- glLoadIdentity();
- glViewport(0,0,pixel_w(),pixel_h());
- glOrtho(-10,10,-10,10,-20050,10000);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
+ if (!valid()) {
+ glLoadIdentity();
+ glViewport(0, 0, pixel_w(), pixel_h());
+ glOrtho(-10, 10, -10, 10, -20050, 10000);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
+ glPushMatrix();
- glTranslatef((GLfloat) xshift, (GLfloat) yshift, 0);
- glRotatef((GLfloat) hAng,0,1,0); glRotatef((GLfloat) vAng,1,0,0);
- glScalef(float(size),float(size),float(size));
+ glTranslatef((GLfloat)xshift, (GLfloat)yshift, 0);
+ glRotatef((GLfloat)hAng, 0, 1, 0);
+ glRotatef((GLfloat)vAng, 1, 0, 0);
+ glScalef(float(size), float(size), float(size));
- drawCube();
+ drawCube();
- glPopMatrix();
+ glPopMatrix();
}
+// [\endcode in documentation/src/fluid.dox]
+
#endif /* HAVE_GL */