GLam Collection version 0.4 -  ACCUEIL -  CLASSES -  HIERARCHIE -  MEMBRES -  EXEMPLES


Référence de la classe GLamGear

Roue dentée. Plus de détails...

#include <glamgear.h>

Graphe d'héritage de GLamGear:
GLamObject

Liste de tous les membres

Fonctions membres publiques

 GLamGear ()
 GLamGear (double innerRadius, double module, int toothCount, double thickness=1.0)
 GLamGear (const GLamGear &obj)
 ~GLamGear ()
GLamGearoperator= (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

Description détaillée

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


Propriétés

module : Module de la roue dentée.

innerRadius : Rayon de l'axe central.

toothCount : Nombre de dents.

thickness : Epaisseur de la roue dentée. Propriété maintenue par la classe de base GLamObject.


Exemple

// 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_example.png



Documentation des constructeurs et destructeur

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_default.png
GLamGear::GLamGear ( double  innerRadius,
double  module,
int  toothCount,
double  thickness = 1.0 
)

Constructeur.

GLamGear::GLamGear ( const GLamGear obj  ) 

Constructeur de copie.

GLamGear::~GLamGear (  ) 

Destructeur.


Documentation des fonctions membres

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.

GLamGear & GLamGear::operator= ( const GLamGear obj  ) 

Surcharge de l'opérateur d'affectation.

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.


Doxygen version 1.6.3 - GLam Collection - (c) 2009-2010 Alain Menu