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


Référence de la classe GLamCylinder

Forme cylindrique. Plus de détails...

#include <glamcylinder.h>

Graphe d'héritage de GLamCylinder:
GLamRevolution GLamObject

Liste de tous les membres

Fonctions membres publiques

 GLamCylinder ()
 GLamCylinder (double diameter, double length)
 GLamCylinder (const GLamCylinder &obj)
 ~GLamCylinder ()
GLamCylinderoperator= (const GLamCylinder &obj)
double diameter () const
void setDiameter (double diameter)
void setThickness (double thickness)

Description détaillée

Forme cylindrique.

La classe GLamCylinder assure la construction d'un élément 3D dont la section est un polygone régulier ; l'élément est posé sur le plan 0XY et centré sur l'origine. La construction nécessite le diamètre extérieur, la longueur (ou épaisseur), le nombre de segments de la section polygonale et l'angle de révolution.
Si l'angle de révolution est inférieur à 360° (valeur par défaut), la classe peut générer ou non les surfaces radiales de fermeture de l'objet en fonction de la propriété closed héritée de GLamRevolution (false par défaut).
Les faces de l'élément sensibles au rendu sont par défaut les faces extérieures, le rendu peut cependant être inversé par la méthode changeSide().
Cette classe permet aussi la création de disques 2D en fixant l'épaisseur (longueur) à 0.0. Elle autorise aussi la fabrication de tubes cylindriques ou de rondelles plates (toroïde de section rectangulaire) grâce à la propriété radius héritée de GLamRevolution.


Propriétés

diameter : Diamètre du cylindre.

length : Longueur 0Z (épaisseur) du solide. Propriété maintenue par la classe de base GLamObject (thickness).


Exemple

// attributs

GLamCylinder* cyl1 ;
GLamCylinder* cyl2 ;
GLamCylinder* cyl3 ;

// construction

float mat[10] = { 0.3, 0.45, 0.0,
          0.7, 0.9,  0.1,
          0.9, 0.9,  0.8, 25 } ;

cyl1 = new GLamCylinder( 2.4, 3.0 ) ;
cyl1->setColor(0.5, 0.3, 0.9 ) ;

cyl2 = new GLamCylinder( *cyl1 ) ;
cyl2->setThickness( 0.2 ) ;
cyl2->setRadius( 1.4 ) ;

cyl3 = new GLamCylinder( 3, 2 ) ;
cyl3->setNumSectors( 180 );
cyl3->setMaterial( mat ) ;
cyl3->setAngle( 270.0 ) ;
cyl3->setClosed() ;

// projection sur la scène

glPushMatrix() ;
  cyl1->draw() ;
  glTranslated(-1, -4, 1 ) ;
  glPushMatrix() ;
  glRotated(-120, 0, 1, 0 ) ;
  cyl2->draw() ;
  glPopMatrix() ;
  glTranslated(-5, -1, 0 ) ;
  glRotated(-60, 1, 0, 0 ) ;
  cyl3->draw() ;
glPopMatrix() ;
glamcylinder_example.png



Documentation des constructeurs et destructeur

GLamCylinder::GLamCylinder (  ) 
Constructeur par défaut.
Le constructeur par défaut crée un élément de section octogonale de volume 1.0 x 1.0 x 1.0, apparaissant sous sa forme fil de fer (wireframe). Cet état est révocable seulement par copie d'un autre objet de même classe (cf. sélecteur isDefault() de la classe de base).
glamcylinder_default.png
GLamCylinder::GLamCylinder ( double  diameter,
double  length 
)

Constructeur. Assure la construction d'un cylindre de diamètre diameter et de longueur length. La propriété numSectors maintenue par la classe GLamRevolution spécifie le nombre de facettes régulières du cylindre et permet donc de construire des formes triangulaires, carrées, hexagonales, ... jusqu'à l'illusion d'un cylindre parfait constitué par exemple de 180 ou 360 facettes !

GLamCylinder::GLamCylinder ( const GLamCylinder obj  ) 

Constructeur de copie.

GLamCylinder::~GLamCylinder (  ) 

Destructeur.


Documentation des fonctions membres

double GLamCylinder::diameter (  )  const [inline]

Propriété diameter.

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

Surcharge de l'opérateur d'affectation.

void GLamCylinder::setDiameter ( double  diameter  ) 

Propriété diameter.

void GLamCylinder::setThickness ( double  thickness  )  [virtual]

Propriété length.

Réimplémentée à partir de GLamObject.


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