Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QGraphicsTransform

La classe QGraphicsTransform est une classe abstraite destin�e � la construction de transformations avanc�es sur des QGraphicsItem. Plus d'informations...

#include <QGraphicsTransform>

Voir la position dans l'arbre des classes.

H�ritage

H�rite de QObject.

H�rit� par QGraphicsRotation and QGraphicsScale.

Cette classe a �t� introduite dans Qt 4.6.

Description d�taill�e

La classe QGraphicsTransform est une classe abstraite destin�e � la construction de transformations avanc�es sur des QGraphicsItem.

En tant qu'alternative � QGraphicsItem::transform, QGraphicsTransform vous permet de cr�er et de contr�ler des transformations avanc�es pouvant �tre configur�es ind�pendamment en utilisant des propri�t�s sp�cialis�es.

QGraphicsItem vous autorise � associer plusieurs instances de QGraphicsTransform � un QGraphicsItem. Chaque QGraphicsTransform est appliqu�e dans l'ordre, une par une, au QGraphicsItem � laquelle elle est associ�e.

QGraphicsTransform est particuli�rement utile pour les animations. Comme QGraphicsItem::setTransform() vous fait affecter les transformations directement aux �l�ments, elle ne donne pas de moyen direct d'interpolation entre deux transformations diff�rentes (par exemple, pour une transition entre deux �tats, pour chacun desquels l'�l�ment a une transformation distincte affect�e). En utilisant QGraphicsTransform, vous pouvez interpoler ind�pendamment les valeurs de propri�t� de chaque transformation. L'op�ration r�sultante est alors combin�e dans une transformation unique qui est appliqu�e � QGraphicsItem.

Les transformations sont d'abord calcul�es dans un espace 3D en utilisant QMatrix4x4. Lorsque la transformation est appliqu�e � un QGraphicsItem, elle est ensuite projet�e sur une QTransform 2D. Quand plusieurs objets QGraphicsTransform sont appliqu�s � un QGraphicsItem, toutes les transformations sont calcul�es dans un espace 3D, la projection en 2D �tant effectu�e seulement apr�s l'application de la derni�re QGraphicsTransform. L'exception est QGraphicsRotation, qui est projet�e en 2D apr�s chaque rotation pour pr�server l'effet de perspective autour des axes X et Y.

Si vous voulez cr�er votre propre transformation configurable, vous pouvez cr�er une classe d�riv�e de QGraphicsTransform (ou d'une classe d�riv�e d�j� existante) et r�impl�menter la fonction virtuelle pure applyTo(), qui prend comme param�tre un pointeur vers une QMatrix4x4. Chaque op�ration que vous voulez appliquer doit �tre expos�e sous forme de propri�t�s (par exemple, customTransform->setVerticalShear(2.5)). Dans votre r�impl�mentation de applyTo(), vous pouvez modifier la transformation fournie.

QGraphicsTransform peut �tre utilis�e en m�me temps que QGraphicsItem::setTransform(), QGraphicsItem::setRotation() et QGraphicsItem::setScale().

Voir aussi QGraphicsItem::transform(), QGraphicsScale et QGraphicsRotation.

Fonctions membres

QGraphicsTransform::QGraphicsTransform ( QObject * parent = 0 )

Construit un nouveau QGraphicsTransform avec le parent donn�.

QGraphicsTransform::~QGraphicsTransform ()

D�truit l'objet.

void QGraphicsTransform::applyTo ( QMatrix4x4 * matrix ) const [pure virtual]

Cette m�thode virtuelle pure doit �tre r�impl�ment�e dans les classes d�riv�es.

Elle applique cette transformation � matrix.

Voir aussi QGraphicsItem::transform() et QMatrix4x4::toTransform().

void QGraphicsTransform::update () [protected slot]

Pr�vient que cette op�ration de transformation a modifi� ses param�tres et qu'en cons�quence applyTo() renverra un r�sultat diff�rent.

Si vous impl�mentez vos propres transformations graphiques, vous devez appeler cette fonction � chaque fois que vous modifiez un param�tre, pour que QGraphicsItem sache que sa transformation doit �tre mise � jour.

Voir aussi applyTo().

Remerciements

Merci � Ilya Diallo pour la traduction et � Dimitry Ernot ainsi qu'� Jacques Thery pour leur relecture !

Publicit�

Best Of