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


Référence de la classe GLamPolygon

Forme polygonale convexe ou oblongue. Plus de détails...

#include <glampolygon.h>

Graphe d'héritage de GLamPolygon:
GLamObject GLamClosedCurve GLamCube GLamRoundedPolygon GLamTesselation

Liste de tous les membres

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 ()
GLamPolygonoperator= (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)

Description détaillée

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).


Propriétés

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).


Exemple

// 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_example.png



Documentation des constructeurs et destructeur

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_default.png
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.


Documentation des fonctions membres

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.


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