![]() |
GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Forme polygonale convexe ou oblongue. Plus de détails...
#include <glampolygon.h>
Fonctions membres publiques | |
GLamPolygon () | |
GLamPolygon (double *pts, int numPts, double thickness=0.0) | |
GLamPolygon (double length, double radius, int numSectors, double thickness=0.0) | |
GLamPolygon (const GLamPolygon &obj) | |
~GLamPolygon () | |
GLamPolygon & | operator= (const GLamPolygon &obj) |
virtual void | create () |
int | numPts () const |
double | x (int numPoint) const |
double | y (int numPoint) const |
bool | isSideChanged () const |
void | changeSide (bool changeSide=true) |
Fonctions membres protégées | |
void | setPoints (double *pts, int numPts) |
Forme polygonale convexe ou oblongue.
La classe GLamPolygon permet la construction d'un élément 3D de section polygonale convexe définie par une liste de sommets (x,y) ou par une longueur et un rayon lorsqu'il s'agit d'une forme oblongue. L'élément est posé sur le plan 0XY.
La suite de points (x,y) peut être initialisée sous forme d'un tableau double
[][2] , elle est transmise lors de la construction sous la forme d'un double*
.
La classe GLamPolygon permet aussi la création de figures 2D en fixant l'épaisseur à 0.0 (valeur par défaut du constructeur).
points
: Sommets de construction du polygone. Le contour est automatiquement fermé, l'argument numPoint peut donc être strictement égal à numPts() pour obtenir le dernier point équivalent au premier.
thickness
: Epaisseur de l'objet (dimension Z). Propriété maintenue par la classe de base GLamObject.
changeSide
: Inversion des faces sensibles au rendu (false par défaut).
// attributs GLamPolygon* poly1 ; GLamPolygon* poly2 ; GLamPolygon* poly3 ; // construction double pts[][2] = { {0,0}, {2,0}, {2,2}, {1.5,3}, {-0.5,3} } ; poly1 = new GLamPolygon( (double*)pts, 5, 1.5 ) ; poly2 = new GLamPolygon( *poly1 ) ; poly2->setThickness( 0.0 ) ; poly2->setColor( 0.3, 0.9, 0.8 ) ; poly3 = new GLamPolygon( 6, 1, 14, 1 ) ; poly3->setColor( 1 - poly2->red(), 1 - poly2->green(), 1 - poly2->blue() ) ; // projection sur la scène glPushMatrix() ; poly1->draw() ; glTranslated( -2.0, -3.0, 3.0 ) ; glRotated(-30, 0, 1, 0 ) ; poly2->draw() ; glTranslated( -2.0, 5.0, 0.0 ) ; poly3->draw() ; glPopMatrix() ; | ![]() |
GLamPolygon::GLamPolygon | ( | ) |
Constructeur par défaut. Le constructeur par défaut crée un élément de section triangulaire 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). | ![]() |
GLamPolygon::GLamPolygon | ( | double * | pts, | |
int | numPts, | |||
double | thickness = 0.0 | |||
) |
Constructeur de forme polygonale convexe.
L'argument pts doit pointer sur une liste de couples de coordonnées x,y dont le nombre est spécifié par numPts.
GLamPolygon::GLamPolygon | ( | double | length, | |
double | radius, | |||
int | numSectors, | |||
double | thickness = 0.0 | |||
) |
Constructeur d'une forme oblongue.
L'argument length représente la longueur totale de l'objet suivant l'axe 0X. Chaque extrémité est terminée par un demi-cercle de rayon radius. La longueur minimale de la pièce est de deux fois le rayon, la longueur est corrigée le cas échéant par le constructeur.
L'argument numSectors spécifie le nombre de facettes constituant la tranche suivant l'axe 0Z du solide ; la valeur minimale est de 6, ce qui ne laisse que 2 facettes pour chacune des extrémités...
GLamPolygon::GLamPolygon | ( | const GLamPolygon & | obj | ) |
Constructeur de copie.
GLamPolygon::~GLamPolygon | ( | ) |
Destructeur.
void GLamPolygon::changeSide | ( | bool | changeSide = true |
) |
Propriété changeSide.
void GLamPolygon::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.
Réimplémentée dans GLamTesselation.
bool GLamPolygon::isSideChanged | ( | ) | const [inline] |
Propriété changeSide.
int GLamPolygon::numPts | ( | ) | const [inline] |
Propriété points.
GLamPolygon & GLamPolygon::operator= | ( | const GLamPolygon & | obj | ) |
Surcharge de l'opérateur d'affectation.
Réimplémentée dans GLamTesselation.
void GLamPolygon::setPoints | ( | double * | pts, | |
int | numPts | |||
) | [protected] |
Mémorisation du contour (cas d'une construction par liste de points).
double GLamPolygon::x | ( | int | numPoint | ) | const [inline] |
Propriété points.
double GLamPolygon::y | ( | int | numPoint | ) | const [inline] |
Propriété points.