Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG Graphics mbed
Models/Square.cpp@1:4a5e329e617b, 2016-11-10 (annotated)
- Committer:
- karpent
- Date:
- Thu Nov 10 15:38:50 2016 +0000
- Revision:
- 1:4a5e329e617b
- Parent:
- 0:8acbce46eede
- Child:
- 3:aca7fe2d44b3
New models added - Cube and Sphere
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
karpent | 0:8acbce46eede | 1 | // |
karpent | 0:8acbce46eede | 2 | // Square.cpp - example of usage graphics commands to create 3D graphics. |
karpent | 0:8acbce46eede | 3 | // |
karpent | 0:8acbce46eede | 4 | // This example is based on code written by |
karpent | 0:8acbce46eede | 5 | // Fabio de Albuquerque Dela Antonio (fabio914 at gmail.com) |
karpent | 0:8acbce46eede | 6 | // See : https://github.com/fabio914/arduinogl/blob/master/examples |
karpent | 0:8acbce46eede | 7 | // |
karpent | 0:8acbce46eede | 8 | |
karpent | 0:8acbce46eede | 9 | #include "Square.h" |
karpent | 0:8acbce46eede | 10 | |
karpent | 0:8acbce46eede | 11 | // Constructor |
karpent | 1:4a5e329e617b | 12 | Square::Square(Display* display) : Angle() |
karpent | 0:8acbce46eede | 13 | { |
karpent | 1:4a5e329e617b | 14 | glUseCanvas(display); |
karpent | 0:8acbce46eede | 15 | } |
karpent | 0:8acbce46eede | 16 | |
karpent | 0:8acbce46eede | 17 | |
karpent | 0:8acbce46eede | 18 | void Square::Setup() |
karpent | 0:8acbce46eede | 19 | { |
karpent | 0:8acbce46eede | 20 | glPointSize(4); |
karpent | 0:8acbce46eede | 21 | |
karpent | 0:8acbce46eede | 22 | glMatrixMode(GL_PROJECTION); |
karpent | 0:8acbce46eede | 23 | glLoadIdentity(); |
karpent | 0:8acbce46eede | 24 | gluOrtho2D(-5.0, 5.0, -5.0, 5.0); |
karpent | 0:8acbce46eede | 25 | |
karpent | 0:8acbce46eede | 26 | glMatrixMode(GL_MODELVIEW); |
karpent | 0:8acbce46eede | 27 | } |
karpent | 0:8acbce46eede | 28 | |
karpent | 0:8acbce46eede | 29 | |
karpent | 0:8acbce46eede | 30 | void Square::Render() |
karpent | 0:8acbce46eede | 31 | { |
karpent | 0:8acbce46eede | 32 | // TODO : Use Scale() class |
karpent | 0:8acbce46eede | 33 | static float scale = 3.0; |
karpent | 0:8acbce46eede | 34 | static float scaleInc = 0.4; |
karpent | 0:8acbce46eede | 35 | const float maxScale = 8.0; |
karpent | 0:8acbce46eede | 36 | const float minScale = 2.0; |
karpent | 0:8acbce46eede | 37 | |
karpent | 0:8acbce46eede | 38 | glLoadIdentity(); |
karpent | 0:8acbce46eede | 39 | glRotatef(angle, 0.f, 0.f, 1.f); |
karpent | 0:8acbce46eede | 40 | glScalef(scale, scale, 0.f); |
karpent | 0:8acbce46eede | 41 | glTranslatef(-0.5f, -0.5f, 0.f); |
karpent | 0:8acbce46eede | 42 | |
karpent | 0:8acbce46eede | 43 | glBegin(GL_POLYGON); |
karpent | 0:8acbce46eede | 44 | glVertex3f(0.f, 1.f, 0.f); |
karpent | 0:8acbce46eede | 45 | glVertex3f(0.f, 0.f, 0.f); |
karpent | 0:8acbce46eede | 46 | glVertex3f(1.f, 0.f, 0.f); |
karpent | 0:8acbce46eede | 47 | glVertex3f(1.f, 1.f, 0.f); |
karpent | 0:8acbce46eede | 48 | glEnd(); |
karpent | 0:8acbce46eede | 49 | |
karpent | 0:8acbce46eede | 50 | scale += scaleInc; |
karpent | 0:8acbce46eede | 51 | |
karpent | 0:8acbce46eede | 52 | if(scale > maxScale) |
karpent | 0:8acbce46eede | 53 | scaleInc *= -1.f; |
karpent | 0:8acbce46eede | 54 | |
karpent | 0:8acbce46eede | 55 | if(scale < minScale) |
karpent | 0:8acbce46eede | 56 | scaleInc *= -1.f; |
karpent | 0:8acbce46eede | 57 | } |