GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Roue dentée. Plus de détails...
#include <glamgear.h>
Fonctions membres publiques | |
GLamGear () | |
GLamGear (double innerRadius, double module, int toothCount, double thickness=1.0) | |
GLamGear (const GLamGear &obj) | |
~GLamGear () | |
GLamGear & | operator= (const GLamGear &obj) |
void | create () |
double | module () const |
void | setModule (double module) |
double | innerRadius () const |
void | setInnerRadius (double innerRadius) |
int | toothCount () const |
void | setToothCount (int toothCount) |
void | resize (double innerRadius, double module, int toothCount) |
double | outerRadius () const |
double | toothSize () const |
Roue dentée.
La classe GLamGear permet la création de roues à dentures droites. Les objets sont posés sur le plan 0XY et centrés sur l'origine.
Une roue dentée est définie par le diamètre de son axe central, son module, son nombre de dents et son épaisseur (élévation sur l'axe Z). Pour mémoire, on appelle rayon primitif la distance séparant l'axe de la roue du point de contact des dents avec celles d'une autre roue engrenée.
Rayon primitif : outerRadius
= ( module
* toothCount
) / 2
Taille des dents : toothSize
= module
* 2.25
module
: Module de la roue dentée.
innerRadius
: Rayon de l'axe central.
thickness
: Epaisseur de la roue dentée. Propriété maintenue par la classe de base GLamObject.
// attributs GLamGear* gear1 ; GLamGear* gear2 ; GLamGear* gear3 ; // construction double module = 0.5 ; int n1 = 16 ; int n2 = 24 ; gear1 = new GLamGear(1.4, module, n1 ) ; float mat[10] = { 0.33, 0.22, 0.03, 0.78, 0.57, 0.11, 0.99, 0.94, 0.81, 28 } ; gear1->setMaterial(mat ) ; gear2 = new GLamGear( *gear1 ) ; gear2->setToothCount( n2 ) ; gear3 = new GLamGear(4, 0.15, 60 ) ; gear3->setThickness(0.5) ; gear3->setColor(250, 240, 12, true ) ; // projection sur la scène (animation par variation de 'angle'...) glPushMatrix() ; glTranslated(0, -4, 0 ) ; glPushMatrix() ; glRotated( angle, 0, 0, 1 ) ; gear1->draw() ; glPopMatrix() ; double interAxis = gear1->outerRadius() + gear2->outerRadius() ; double ratio = (double)gear1->toothCount() / gear2->toothCount() ; double alpha = -ratio * 2 * Pi ; glTranslated(0, interAxis, 0 ) ; glRotated( alpha, 0, 0, 1 ) ; glPushMatrix() ; glRotated( -ratio * angle, 0, 0, 1 ) ; gear2->draw() ; glTranslated( 0, 0, 2 ) ; gear3->draw() ; glPopMatrix() ; glPopMatrix() ; |
GLamGear::GLamGear | ( | ) |
Constructeur par défaut. Le constructeur par défaut crée une roue de module 0.2 avec 8 dents et une épaisseur égale à 1.0, apparaissant sous sa forme fil de fer (wireframe). Cet état est révoqué dès que l'élément est redimensionné, ou par copie d'un autre objet de même classe (cf. sélecteur isDefault() de la classe de base). |
GLamGear::GLamGear | ( | double | innerRadius, | |
double | module, | |||
int | toothCount, | |||
double | thickness = 1.0 | |||
) |
Constructeur.
GLamGear::GLamGear | ( | const GLamGear & | obj | ) |
Constructeur de copie.
GLamGear::~GLamGear | ( | ) |
Destructeur.
void GLamGear::create | ( | ) | [virtual] |
Méthode de dessin utilisée par la classe de base pour générer la display list de l'objet. Les programmes clients ne doivent normalement pas invoquer directement cette méthode, mais préférer la méthode draw() qui exploite la primitive OpenGL glCallList()
.
Implémente GLamObject.
double GLamGear::innerRadius | ( | ) | const [inline] |
Propriété innerRadius.
double GLamGear::module | ( | ) | const [inline] |
Propriété module.
double GLamGear::outerRadius | ( | ) | const [inline] |
Diamètre nominal de la roue dentée.
void GLamGear::resize | ( | double | innerRadius, | |
double | module, | |||
int | toothCount | |||
) |
Paramétrage de la roue dentée.
void GLamGear::setInnerRadius | ( | double | innerRadius | ) |
Propriété innerRadius.
void GLamGear::setModule | ( | double | module | ) |
Propriété module.
void GLamGear::setToothCount | ( | int | toothCount | ) |
Propriété toothCount.
int GLamGear::toothCount | ( | ) | const [inline] |
Propriété toothCount.
double GLamGear::toothSize | ( | ) | const [inline] |
Taille des dents de la roue dentée.