Représentation d'une projection (éventuellement partielle) d'un graphe dans un autre. More...
#include "cogitant/projection.h"
Public Member Functions | |
Constructeurs - destructeur. | |
Projection () | |
Constructeur. More... | |
Projection (Graph const *g) | |
Constructeur à vide à partir du graphe projeté. More... | |
~Projection () | |
Destructeur. More... | |
Modifications. | |
void | setGraph (Graph const *g) |
Dimensionnement de l'objet pour contenir une projection à partir du graphe passé. More... | |
void | newCouple (iSet first, iSet second) |
Ajout d'un couple. More... | |
void | deleteCouple (iSet first) |
Ajout d'un couple. More... | |
void | replaceSecond (iSet oldnode, iSet newnode) |
Remplace un sommet par un autre dans les images. More... | |
void | unionWith (Projection const &p2) |
Ajoute à la projection courante les couples de la projection passée en paramètre. More... | |
void | clear () |
Vide la projection. More... | |
Accesseurs. | |
iSet | getSecond (iSet first) const |
Recherche de l'image d'un sommet. More... | |
iSet | getFirst (iSet second) const |
Recherche de l'antécédant d'un sommet. More... | |
void | images (GraphSubset &subset) const |
Accès aux sommets qui ont un antécédant par la projection. More... | |
void | sources (std::vector< iSet > &v) const |
Accès aux sommets ayant une image par la projection. More... | |
void | images (std::vector< iSet > &v) const |
Accès aux sommets images par la projection. More... | |
nSet | maxSize () const |
Nombre maximum de couples présents dans la projection. More... | |
bool | isInjective () const |
Est-ce que la projection est injective ? Cette méthode prend en compte tous les noeuds du graphe, y compris les emboîtements, et les graphes à l'intérieur des emboîtements. More... | |
std::vector< iSet > const & | internalRepresentation () const |
Accès au stockage de la projection. | |
std::string | toString () const |
Transformation en chaîne de caractères. More... | |
Protected Attributes | |
std::vector< iSet > | m_images |
Tableau d'images. More... | |
Opérateurs. | |
Projection & | operator= (Projection const &ob) |
Affectation. More... | |
std::ostream & | operator<< (std::ostream &os, const Projection &ob) |
Sortie sur un flux. More... | |
Représentation d'une projection (éventuellement partielle) d'un graphe dans un autre.
cogitant::Projection::Projection | ( | ) |
Constructeur.
cogitant::Projection::Projection | ( | Graph const * | g | ) |
Constructeur à vide à partir du graphe projeté.
cogitant::Projection::~Projection | ( | ) |
Destructeur.
void cogitant::Projection::clear | ( | ) |
Vide la projection.
|
inline |
Ajout d'un couple.
References cogitant::ISET_NULL.
Recherche de l'antécédant d'un sommet.
second | identifiant d'un sommet sur lequel la projection a été calculée. |
Recherche de l'image d'un sommet.
first | identificant d'un sommet dans le graphe projeté. |
void cogitant::Projection::images | ( | GraphSubset & | subset | ) | const |
Accès aux sommets qui ont un antécédant par la projection.
Cette méthode remplit le GraphSubset passé en paramètre avec les sommets du graphe sur laquelle la projection a été calculée, qui ont un antécédent. Notez que ce le Subset contiendra tous les objets ayant un antécédent, c'est à dire aussi des InternalGraph (la racine, les graphes emboîtés), et des Nesting.
subset | La méthode ajoute à cet ensemble les sommets qui ont un antécédent. Attention, le GraphSubset passé en paramètre doit avoir été créé en utilisant le constructeur qui prend comme paramètre un graphe, et il est plus particulièrement nécessaire de passer à ce constructeur le graphe sur lequel la projection est calculée. Notez que si l'ensemble n'est pas vide avant l'appel à la méthode, les éléments présents dans l'ensemble ne sont pas effacés, il peut donc être utile, dans certains cas, d'utiliser GraphSubset::clear() pour vider l'ensemble. |
void cogitant::Projection::images | ( | std::vector< iSet > & | v | ) | const |
Accès aux sommets images par la projection.
v | la méthode ajoute à v les sommets images. |
bool cogitant::Projection::isInjective | ( | ) | const |
Est-ce que la projection est injective ? Cette méthode prend en compte tous les noeuds du graphe, y compris les emboîtements, et les graphes à l'intérieur des emboîtements.
En fait elle vérifie simplement si deux noeuds n'ont pas le même antécédent.
true
si la projection est injective, false
sinon.
|
inline |
Nombre maximum de couples présents dans la projection.
References CGTDLLEXPORT, and cogitant::operator<<().
Ajout d'un couple.
Cette méthode peut être utilisée même si first a déjà une image, dans ce cas, elle est écrasée et remplacée par second.
first | identifiant du sommet projeté. |
second | identifiant de l'image. |
Projection& cogitant::Projection::operator= | ( | Projection const & | ob | ) |
Affectation.
Remplace un sommet par un autre dans les images.
Cette méthode modifie tous les couples (x, oldnode) par (x, newnode) (quel que soit x).
oldnode | identificateur d'un sommet image. |
newnode | identificateur d'un sommet image, remplaçant toute les occurences de oldnode. |
void cogitant::Projection::setGraph | ( | Graph const * | g | ) |
Dimensionnement de l'objet pour contenir une projection à partir du graphe passé.
Cette méthode est appelée automatiquement par l'opération de calcul des projections.
void cogitant::Projection::sources | ( | std::vector< iSet > & | v | ) | const |
Accès aux sommets ayant une image par la projection.
v | la méthode ajoute à v les sommets ayant une image. |
std::string cogitant::Projection::toString | ( | ) | const |
Transformation en chaîne de caractères.
void cogitant::Projection::unionWith | ( | Projection const & | p2 | ) |
Ajoute à la projection courante les couples de la projection passée en paramètre.
|
friend |
Sortie sur un flux.
|
protected |
Tableau d'images.
m_images[i]
est l'image du sommet i, et vaut ISET_NULL
si i n'a pas d'image par la projection.