![]() |
GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Polygone avec sommets arrondis. Plus de détails...
#include <glamroundedpolygon.h>
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 () | |
GLamRoundedPolygon & | operator= (const GLamRoundedPolygon &obj) |
double | radius () const |
void | setRadius (double radius) |
int | numSectors () const |
void | setNumSectors (int numSectors) |
void | setRoundedPoint (int num, bool rounded=true) |
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.
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.
// 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::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::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.
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.