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


Référence de la classe GLamClosedCurve

BSpline par enveloppe polygonale convexe fermée. Plus de détails...

#include <glamclosedcurve.h>

Graphe d'héritage de GLamClosedCurve:
GLamPolygon GLamObject

Liste de tous les membres

Fonctions membres publiques

 GLamClosedCurve ()
 GLamClosedCurve (double *pts, int numPtsCtrl, int numSectors, double thickness=0.0)
 GLamClosedCurve (const GLamClosedCurve &obj)
 ~GLamClosedCurve ()
GLamClosedCurveoperator= (const GLamClosedCurve &obj)
int numSectors () const
void setNumSectors (int numSectors)

Description détaillée

BSpline par enveloppe polygonale convexe fermée.

La classe GLamClosedCurve permet la création de surfaces 2D ou de solides dont le profil est une courbe fermée de BSpline définie par une enveloppe matérialisée par une liste de points de contrôle (x,y).
Note : le principe de calcul des BSplines (de degré 2) laisse la possibilité d'obtenir des sommets non lissés ; il suffit pour cela de doubler le sommet concerné dans la liste.


Propriétés

numSectors : Nombre de facettes à répartir sur la tranche du solide.

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


Exemple

// attributs

GLamClosedCurve*  curv1 ;
GLamClosedCurve*  curv2 ;
GLamClosedCurve*  curv3 ;

// construction

double ptscurv1[][2] = { {4,-2},{3,3},{1,4},{-4,2},{-2,-3} } ;
curv1 = new GLamClosedCurve((double*)ptscurv1, 5, 40, 1 ) ;
curv1->setColor(255, 236, 139, true ) ;

double ptscurv2[][2] = { {2,0},{2,0}, {1.5,2},{-3,3}, {-3,-1},{-3,-1} } ;
curv2 = new GLamClosedCurve((double*)ptscurv2, 6, 100 ) ;

double ptscurv3[][2] = {
  {0.3,0},{0.3,0}, {0.6,1},{0.5,2}, {0,3.3},{0,3.3},
  {-0.5,2},{-0.6,1}, {-0.3,0},{-0.3,0} } ;

GLamObject::scalePoints((double*)ptscurv3, 10, 2, 2 ) ;
GLamObject::rotatePoints((double*)ptscurv3, 10, -90 ) ;

curv3 = new GLamClosedCurve((double*)ptscurv3, 10, 100 ) ;

float mat[10] = { 0.75, 0.25, 0.25, 0.4, 0.4, 0.4,
          0.774597, 0.774597, 0.774597, 76.8 } ;
curv3->setMaterial( mat ) ;
curv3->setNumSectors( 200 );
curv3->setThickness(2.4) ;

// projection sur la scène

glPushMatrix() ;
  curv1->draw() ;
  glTranslated(-6, -5, 2 ) ;
  curv2->draw() ;
  glTranslated(2, -1.5, 0 ) ;
  glRotated(-30, -1, 1, 0 ) ;
  curv3->draw() ;
glPopMatrix() ;
glamclosedcurve_example.png



Documentation des constructeurs et destructeur

GLamClosedCurve::GLamClosedCurve (  ) 
Constructeur par défaut.

Le constructeur par défaut crée un élément d'enveloppe triangulaire de volume 1.0 x 1.0 x 1.0. 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).
glamclosedcurve_default.png
GLamClosedCurve::GLamClosedCurve ( double *  pts,
int  numPtsCtrl,
int  numSectors,
double  thickness = 0.0 
)

Constructeur.
L'enveloppe est spécifiée par un tableau pts de numPtsCtrl points de contrôle (x,y).
L'argument numSectors précise le nombre de facettes à répartir sur la tranche dans le cas où l'épaisseur thickness est non nulle.

GLamClosedCurve::GLamClosedCurve ( const GLamClosedCurve obj  ) 

Constructeur de copie.

GLamClosedCurve::~GLamClosedCurve (  ) 

Destructeur.


Documentation des fonctions membres

int GLamClosedCurve::numSectors (  )  const [inline]

Propriété numSectors

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

Surcharge de l'opérateur d'affectation.

void GLamClosedCurve::setNumSectors ( int  numSectors  ) 

Propriété numSectors


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