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


Référence de la classe GLamRoundedPolygon

Polygone avec sommets arrondis. Plus de détails...

#include <glamroundedpolygon.h>

Graphe d'héritage de GLamRoundedPolygon:
GLamPolygon GLamObject

Liste de tous les membres

Fonctions membres publiques

 GLamRoundedPolygon ()
 GLamRoundedPolygon (double *pts, int numPts, double radius, double thickness=0.0)
 GLamRoundedPolygon (double width, double height, double radius, double thickness=0.0)
 GLamRoundedPolygon (const GLamRoundedPolygon &obj)
 ~GLamRoundedPolygon ()
GLamRoundedPolygonoperator= (const GLamRoundedPolygon &obj)
double radius () const
void setRadius (double radius)
int numSectors () const
void setNumSectors (int numSectors)
void setRoundedPoint (int num, bool rounded=true)

Description détaillée

Polygone avec sommets arrondis.

La classe GLamRoundedPolygon permet de réaliser des éléments 2D ou des solides avec pour profil un polygone convexe dont chaque sommet est tronqué par un arrondi ou un chanfrein (arrondi à une seule facette).
Par défaut, tous les sommets sont affectés par l'arrondi et le nombre de facettes est fixé à 1. Chaque sommet peut ensuite être individuellement sélectionné par la méthode setRoundedPoint() pour passer du mode sommet normal au mode sommet avec arrondi.


Attention : La méthode numPts() héritée de GLamPolygon retourne le nombre de points nécessaires à la construction du polygone (sachant qu'un arrondi requiert à lui seul plusieurs points) et non le nombre de sommets spécifié dans le constructeur de GLamRoundedPolygon.


Propriétés

radius : rayon des arrondis.

numSectors : Nombre de facettes pour chaque arrondi (1 par défaut, ce qui correspond à un chanfrein).

thickness : Epaisseur de l'objet (dimension Z). Propriété maintenue par la classe de base GLamObject.


Exemple

// attributs

GLamRoundedPolygon* rpoly1 ;
GLamRoundedPolygon* rpoly2 ;
GLamRoundedPolygon* rpoly3 ;
GLamTesselation*  tess ;

// construction

rpoly1 = new GLamRoundedPolygon(5, 3, 0.7, 0.5 ) ;
rpoly1->setNumSectors( 30 ) ;
rpoly1->setColor(193, 255, 193, true ) ;

double pts[][2] = { {0,0}, {5,3}, {-2,2} } ;

rpoly2 = new GLamRoundedPolygon( (double*)pts, 3, 0.5, 0.8 ) ;

rpoly2->setNumSectors( 6 ) ;
rpoly2->setColor(0.5, 0.7, 0.4, true ) ;

tess = new GLamTesselation( (GLamPolygon)(*rpoly2) ) ;
tess->addCircularHole(0.1, 1, 0.5, 60 ) ;

rpoly3 = new GLamRoundedPolygon( *rpoly1 ) ;
rpoly3->setRadius(1.2 ) ;
rpoly3->setRoundedPoint(0, false ) ;
rpoly3->setRoundedPoint(1, false ) ;
rpoly3->setColor(238, 174, 238, true ) ;

// projection sur la scène

glPushMatrix() ;
  rpoly1->draw() ;
  glTranslated(0, -6, 0 ) ;
  tess->draw() ;
  glTranslated(-5, 2, 3 ) ;
  glRotated(-45, 0, 0, 1 ) ;
  rpoly3->draw() ;
glPopMatrix() ;
glamroundedpolygon_example.png



Documentation des constructeurs et destructeur

GLamRoundedPolygon::GLamRoundedPolygon (  ) 
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, avec un petit chanfrein à chaque sommet. Il apparait 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).
glamroundedpolygon_default.png
GLamRoundedPolygon::GLamRoundedPolygon ( double *  pts,
int  numPts,
double  radius,
double  thickness = 0.0 
)

Constructeur à partir d'une liste de sommets (x,y), du rayon des arrondis et de l'épaisseur.

GLamRoundedPolygon::GLamRoundedPolygon ( double  width,
double  height,
double  radius,
double  thickness = 0.0 
)

Constructeur d'une forme rectangulaire width x height, avec le rayon des arrondis et l'épaisseur. Le nombre de sommets est égal à quatre numérotés de 0 à 3 à partir de ( width / 2 , -height / 2 ) dans le sens de rotation trigonométrique.

GLamRoundedPolygon::GLamRoundedPolygon ( const GLamRoundedPolygon obj  ) 

Constructeur de copie.

GLamRoundedPolygon::~GLamRoundedPolygon (  ) 

Destructeur.


Documentation des fonctions membres

int GLamRoundedPolygon::numSectors (  )  const [inline]

Propriété numSectors

GLamRoundedPolygon & GLamRoundedPolygon::operator= ( const GLamRoundedPolygon obj  ) 

Surcharge de l'opérateur d'affectation.

double GLamRoundedPolygon::radius (  )  const [inline]

Propriété radius

void GLamRoundedPolygon::setNumSectors ( int  numSectors  ) 

Propriété numSectors

void GLamRoundedPolygon::setRadius ( double  radius  ) 

Propriété radius

void GLamRoundedPolygon::setRoundedPoint ( int  num,
bool  rounded = true 
)

Méthode permettant de valider ou non l'arrondi sur un sommet déterminé. Le sommet concerné est désigné par l'argument num qui doit être compris entre 0 et le nombre de sommets - 1.


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