Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Protected Attributes | List of all members
cogitant::Projection Class Reference

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< iSetm_images
 Tableau d'images. More...
 

Opérateurs.

Projectionoperator= (Projection const &ob)
 Affectation. More...
 
std::ostream & operator<< (std::ostream &os, const Projection &ob)
 Sortie sur un flux. More...
 

Detailed Description

Représentation d'une projection (éventuellement partielle) d'un graphe dans un autre.

See also
ResultOpeProjection, Environment::projections(), Projection calculation.

Constructor & Destructor Documentation

◆ Projection() [1/2]

cogitant::Projection::Projection ( )

Constructeur.

◆ Projection() [2/2]

cogitant::Projection::Projection ( Graph const *  g)

Constructeur à vide à partir du graphe projeté.

◆ ~Projection()

cogitant::Projection::~Projection ( )

Destructeur.

Member Function Documentation

◆ clear()

void cogitant::Projection::clear ( )

Vide la projection.

◆ deleteCouple()

void cogitant::Projection::deleteCouple ( iSet  first)
inline

Ajout d'un couple.

References cogitant::ISET_NULL.

◆ getFirst()

iSet cogitant::Projection::getFirst ( iSet  second) const

Recherche de l'antécédant d'un sommet.

Parameters
secondidentifiant d'un sommet sur lequel la projection a été calculée.
Returns
l'identifiant (dans le graphe projeté) du sommet ayant pour image second ou ISET_NULL si aucun sommet du graphe projeté n'a second pour image. Dans le cas ou second a plusieurs antécédents, seul le premier trouvé est retourné.

◆ getSecond()

iSet cogitant::Projection::getSecond ( iSet  first) const
inline

Recherche de l'image d'un sommet.

Parameters
firstidentificant d'un sommet dans le graphe projeté.
Returns
l'identifiant (dans le graphe sur lequel la projection a été calculée) du sommet first.

◆ images() [1/2]

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.

Parameters
subsetLa 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.

◆ images() [2/2]

void cogitant::Projection::images ( std::vector< iSet > &  v) const

Accès aux sommets images par la projection.

Parameters
vla méthode ajoute à v les sommets images.

◆ isInjective()

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.

Returns
true si la projection est injective, false sinon.

◆ maxSize()

nSet cogitant::Projection::maxSize ( ) const
inline

Nombre maximum de couples présents dans la projection.

Returns
le nombre maximum de couples présents dans la projections, c'est à dire le nombre d'objets du graphe projeté.

References CGTDLLEXPORT, and cogitant::operator<<().

◆ newCouple()

void cogitant::Projection::newCouple ( iSet  first,
iSet  second 
)
inline

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.

Parameters
firstidentifiant du sommet projeté.
secondidentifiant de l'image.

◆ operator=()

Projection& cogitant::Projection::operator= ( Projection const &  ob)

Affectation.

◆ replaceSecond()

void cogitant::Projection::replaceSecond ( iSet  oldnode,
iSet  newnode 
)

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).

Parameters
oldnodeidentificateur d'un sommet image.
newnodeidentificateur d'un sommet image, remplaçant toute les occurences de oldnode.
Warning
Ne pas confondre cette méthode avec newCouple().

◆ setGraph()

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.

Warning
Efface la projection contenue.

◆ sources()

void cogitant::Projection::sources ( std::vector< iSet > &  v) const

Accès aux sommets ayant une image par la projection.

Parameters
vla méthode ajoute à v les sommets ayant une image.

◆ toString()

std::string cogitant::Projection::toString ( ) const

Transformation en chaîne de caractères.

◆ unionWith()

void cogitant::Projection::unionWith ( Projection const &  p2)

Ajoute à la projection courante les couples de la projection passée en paramètre.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Projection ob 
)
friend

Sortie sur un flux.

Member Data Documentation

◆ m_images

std::vector<iSet> cogitant::Projection::m_images
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.