GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Classe de base. Plus de détails...
#include <glamhole.h>
Fonctions membres publiques | |
GLamHole (int numPoints, double thickness=1.0) | |
GLamHole (const GLamHole &obj) | |
~GLamHole () | |
GLamHole & | operator= (const GLamHole &obj) |
int | numSectors () const |
int | numPts () const |
int | polygonNumPoints () const |
double | x (int numPoint) const |
double | y (int numPoint) const |
void | changeSide (bool changeSide=true) |
bool | isSideChanged () const |
Fonctions membres protégées | |
virtual void | create () |
void | setX (int numPoint, double x) |
void | setNumPts (int numPts) |
void | setY (int numPoint, double y) |
Classe de base.
Cette classe n'est théoriquement jamais utilisée directement par les applications clientes. Elle sert de base aux classes permettant de mettre en place des évidements dans les objets de classe GLamTesselation.
Rien n'empêche cependant d'utiliser des "trous" autrement qu'au sein d'un objet facettisé ; l'exemple bobine montre la mise en oeuvre d'un objet GLamCircularHole pour créer un axe creux...
numSectors
: Nombre de facettes constituant le trou (égal au nombre de points du contour - 1).
points
: Points (x,y) du contour du trou.
changeSide
: Inversion de la face sensible au rendu. La face sensible par défaut est la face intérieure (il s'agit de trous !).
// attributs GLamCircularHole* hole1 ; GLamPolygonalHole* hole2 ; GLamPolygonalHole* hole3 ; GLamCurvedHole* hole4 ; GLamHole* hole5 ; // construction double pts[][2] = { {2,2}, {2,3}, {-2,3}, {-2,2}, {1,2}, {-2,-2}, {-2,-3}, {2,-3}, {2,-2}, {-1,-2} } ; hole1 = new GLamCircularHole(2, 1.5, 8 ) ; hole1->setColor(238, 238, 0, true ) ; hole2 = new GLamPolygonalHole((double*)pts, 10, 0.5 ) ; hole3 = new GLamPolygonalHole(3, 0.4, 45, 0.8 ) ; hole3->changeSide() ; hole4 = new GLamCurvedHole((double*)pts, 10, 100, 0.75 ) ; hole4->setColor(173, 216, 230, true ) ; hole5 = new GLamHole( *hole1 ) ; hole5->changeSide() ; // projection sur la scène glPushMatrix() ; glTranslated( 1, 2, 0 ) ; hole1->draw() ; glTranslated( 0, -5, 0 ) ; hole2->draw() ; glTranslated(-5, 0, 0 ) ; hole4->draw() ; glTranslated( 0, 5, 0 ) ; hole3->draw() ; glTranslated( 2.5, 0, 0 ) ; hole5->draw() ; glPopMatrix() ; |
GLamHole::GLamHole | ( | int | numPoints, | |
double | thickness = 1.0 | |||
) |
Constructeur. Ce constructeur assure simplement la réservation mémoire pour le stockage des points du contour du trou. Les couples de valeurs sont initialisés à (0,0).
GLamHole::GLamHole | ( | const GLamHole & | obj | ) |
Constructeur de copie.
GLamHole::~GLamHole | ( | ) |
Destructeur.
void GLamHole::changeSide | ( | bool | changeSide = true |
) |
Propriété changeSide.
void GLamHole::create | ( | ) | [protected, 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 GLamHole::isSideChanged | ( | ) | const [inline] |
Propriété changeSide.
int GLamHole::numPts | ( | ) | const [inline] |
Propriété points.
int GLamHole::numSectors | ( | ) | const [inline] |
Propriété numSectors.
void GLamHole::setNumPts | ( | int | numPts | ) | [protected] |
Propriété points. Réallocation de la zone mémoire d'allocation des points du contour du trou. Les anciennes valeurs sont perdues, les nouveaux couples de valeurs sont initialisés à (0,0).
void GLamHole::setX | ( | int | numPoint, | |
double | x | |||
) | [protected] |
Propriété points.
void GLamHole::setY | ( | int | numPoint, | |
double | y | |||
) | [protected] |
Propriété points.
double GLamHole::x | ( | int | numPoint | ) | const |
Propriété points.
double GLamHole::y | ( | int | numPoint | ) | const |
Propriété points.