![]() |
GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Forme cylindrique. Plus de détails...
#include <glamcylinder.h>
Fonctions membres publiques | |
GLamCylinder () | |
GLamCylinder (double diameter, double length) | |
GLamCylinder (const GLamCylinder &obj) | |
~GLamCylinder () | |
GLamCylinder & | operator= (const GLamCylinder &obj) |
double | diameter () const |
void | setDiameter (double diameter) |
void | setThickness (double thickness) |
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.
diameter
: Diamètre du cylindre.
length
: Longueur 0Z (épaisseur) du solide. Propriété maintenue par la classe de base GLamObject (thickness
).
// 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::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::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.
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.