![]() |
GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Profilé linéaire. Plus de détails...
#include <glamprofile.h>
Fonctions membres publiques | |
GLamProfile () | |
GLamProfile (double *pts, double *vectors, int numSectors=20, double length=0.0) | |
GLamProfile (double *pts, int numPts, double length=0.0) | |
GLamProfile (double radius, int numSectors=20, double length=0.0) | |
GLamProfile (const GLamProfile &obj) | |
~GLamProfile () | |
GLamProfile & | operator= (const GLamProfile &obj) |
void | create () |
void | changeSide (bool changeSide=true) |
bool | isSideChanged () const |
int | numPts () const |
double | x (int numPoint) const |
double | y (int numPoint) const |
Profilé linéaire.
La classe GLamProfile permet la construction d'un profilé linéaire à partir de la description de sa section transversale.
La section peut être décrite de trois manières différentes :
double
[][2], à transmettre lors de la construction en tant que double*
, suivi du nombre de points ;double
[2][2]), suivi des vecteurs en ces points (deuxième tableau double
[2][2]) et du nombre de facettes ; le profil est alors calculé comme une courbe lisse de Bézier ;
Le profilé est sans épaisseur (assimilable à une pièce de tôle laminée), le coté sensible au rendu peut être inversé par la méthode changeSide().
Les profilés fabriqués au moyen de la classe GLamProfile peuvent être complétés par des éléments d'angle avec les classes GLamCorner et GLamRoundedCorner.
points
: Sommets de construction du profilé.
changeSide
: Inversion des faces sensibles au rendu (false par défaut).
length
: Longueur du profilé. Propriété maintenue par la classe de base GLamObject (thickness
).
// attributs GLamProfile* prof1 ; GLamProfile* prof2 ; GLamProfile* prof3 ; // construction double pts1[][2] = { {2,0}, {2,0.5}, {1.5,0.5}, {1.7,1.5}, {1,2.4}, {0,2.4} } ; double pts2[][2] = { {1,0}, {0,2} } ; double vec1[][2] = { {0,2}, {1,-0.3} } ; prof1 = new GLamProfile( (double*)pts1, 6, 4 ) ; prof1->setColor(0.4, 0.3, 0.8, true ) ; prof2 = new GLamProfile( (double*)pts2, (double*)vec1, 40, 2.5 ) ; prof3 = new GLamProfile(1.5, 45, 3 ) ; prof3->setColor(0.7, 0.3, 0.2, true ) ; // projection sur la scène glPushMatrix() ; glTranslated(-2, -4, 0 ) ; prof1->draw() ; glTranslated(-3, -2, 0 ) ; prof2->draw() ; glTranslated(-2, 5, 0 ) ; glRotated(-30, 0, 1, 0 ) ; prof3->draw() ; glPopMatrix() ; | ![]() |
GLamProfile::GLamProfile | ( | ) |
Constructeur par défaut. Le constructeur par défaut crée une cornière de volume 0.5 x 1.0 x 1.0, apparaissant sous sa forme fil de fer (wireframe). Cet état est révocable par copie d'un autre objet de même classe (cf. sélecteur isDefault() de la classe de base). | ![]() |
GLamProfile::GLamProfile | ( | double * | pts, | |
double * | vectors, | |||
int | numSectors = 20 , |
|||
double | length = 0.0 | |||
) |
Constructeur d'un profil de type courbe de Bézier.
GLamProfile::GLamProfile | ( | double * | pts, | |
int | numPts, | |||
double | length = 0.0 | |||
) |
Constructeur d'un profil polygonal par liste de points (x,y).
GLamProfile::GLamProfile | ( | double | radius, | |
int | numSectors = 20 , |
|||
double | length = 0.0 | |||
) |
Constructeur d'un profil quart de cercle de rayon radius.
GLamProfile::GLamProfile | ( | const GLamProfile & | obj | ) |
Constructeur de copie.
GLamProfile::~GLamProfile | ( | ) |
Destructeur.
void GLamProfile::changeSide | ( | bool | changeSide = true |
) |
Propriété changeSide.
void GLamProfile::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.
bool GLamProfile::isSideChanged | ( | ) | const [inline] |
Propriété changeSide.
int GLamProfile::numPts | ( | ) | const [inline] |
Propriété points.
GLamProfile & GLamProfile::operator= | ( | const GLamProfile & | obj | ) |
Surcharge de l'opérateur d'affectation.
double GLamProfile::x | ( | int | numPoint | ) | const [inline] |
Propriété points.
double GLamProfile::y | ( | int | numPoint | ) | const [inline] |
Propriété points.