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

Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
cogitantdisplay::DrawingGraph Class Reference

Classe permettant l'accès aux éléments graphiques utilisés pour déssiner un cogitant::Graph. More...

#include "cogitant/display/graph.h"

Inheritance diagram for cogitantdisplay::DrawingGraph:
cogitantdisplay::Drawing cogitant::CogitantObject

Public Member Functions

 DrawingGraph (cogitant::Environment *env, cogitant::Graph *graph, Style *stylesheet=NULL)
 Constructeur. More...
 
Iterator begin (Iterator::Type type, Element const &arg) const
 
void next (Iterator &it) const
 Passage à l'itérateur suivant lors d'un parcours. More...
 
Element ident (Iterator const &it) const
 Calcul de l'élément correspondant à un itérator. More...
 
Element root () const
 Élément racine (extérieur). More...
 
Element global () const
 Élément qui contient les propriétés globales. More...
 
cogitant::CogitantObject const * getObject (Element const &it) const
 Accès à l'objet correspondant à un élément de dessin. More...
 
bool isEdge (Element const &it, unsigned int *linked=NULL) const
 Accès à la nature de l'élément. More...
 
bool isSelectable (Element const &el) const
 L'élément est-il sélectionnable. More...
 
cogitant::iSet getSubId (Element const &it) const
 Accès à l'identificateur de sous-ensemble de propriétés. More...
 
Style::Id getStyle (Element const &it) const
 Retourne le style de l'élément de dessin. More...
 
std::string getLabel (Element const &el) const
 Retourne l'étiquette correspondant à l'élément de dessin. More...
 
bool getLabelP (Element const &el) const
 Retourne vrai si l'élément de dessin est étiquetté. More...
 
std::string name () const
 Nom du dessin. More...
 
unsigned int typeOf (Element const &el) const
 Accès au "type" de l'élément graphique. More...
 
cogitant::iSet getISet (Element const &el) const
 Retourne l'identificateur de l'objet du graphe correspondant à l'élément. More...
 
Element getElement (cogitant::iSet i1, cogitant::iSet i2=cogitant::ISET_NULL)
 Retourne l'élément qui représente l'objet du graphe dont l'identificateur est passé. More...
 
cogitant::Edge::Label getEdgeLabel (Element const &el) const
 Retourne l'étiquette de l'arête correspondant à l'élément. More...
 
cogitant::Graphgraph ()
 Accès au graphe. More...
 
cogitant::Graph const * graph () const
 Accès au graphe. More...
 
cogitant::Environmentenvironment ()
 Accès à l'environnement. More...
 
cogitant::Environment const * environment () const
 Accès à l'environnement. More...
 
void graph (cogitant::Environment *env, cogitant::Graph *g)
 Modification du graphe. More...
 
- Public Member Functions inherited from cogitantdisplay::Drawing
 Drawing (Style *stylesheet)
 Constructeur par défaut. More...
 
virtual ~Drawing ()
 Destructeur. More...
 
virtual Iterator begin (Iterator::Type type, Element const &arg) const =0
 Itérateur de début pour un parcours des objets liés ou objets fils. More...
 
Iterator beginChildren (Element const &arg) const
 Itérateur de début pour un parcours des fils. More...
 
Iterator beginLinked (Element const &arg) const
 Itérateur de début pour un parcours des objets liés. More...
 
Iterator beginParent (Element const &arg) const
 Itérateur de début pour un parcours des objets parents. More...
 
Iterator beginAll () const
 Itérateur de début pour un parcours total. More...
 
Iterator end () const
 Iterateur incorrect de fin de parcours (quelconque). More...
 
virtual cogitant::CogitantObjectgetObjectVar (Element const &it)
 Accès à l'objet correspondant à un élément de dessin. More...
 
virtual unsigned int edgeSameElements (Element const &el, unsigned int *i=NULL) const
 L'arête a t elle des soeurs. More...
 
virtual Font getFont (Element const &el) const
 Retourne la fonte correspondant à l'élément de dessin. More...
 
virtual Brush getBrush (Element const &el) const
 Retourne la brosse correspondant à l'élément de dessin. More...
 
virtual Pen getPen (Element const &el) const
 Retourne le pinceau correspondant à l'élément de dessin. More...
 
virtual Position getPosition (Element const &el) const
 Retourne la position des éléments contenus dans un élément de dessin. More...
 
virtual Figure::Style getFigure (Element const &el) const
 Retourne le type de figure de l'élément de dessin. More...
 
virtual bool getVisible (Element const &el) const
 L'élément est-il caché ou visible ? Si l'élément n'est pas visible, les fils ne sont pas affichés non plus. More...
 
virtual cogitant::PropertySet const * getPropertySet (Element const &it) const
 Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin. More...
 
virtual cogitant::PropertySetgetPropertySet (Element const &it)
 Accès à un ensemble de propriétés pour la lecture/stockage de propriétés d'un élément de dessin. More...
 
virtual int propertyDefined (Element const &el, cogitant::Property::Type tp) const
 La propriété est elle définie pour l'élément ? More...
 
virtual bool read (Element const &it, std::string const &tp, std::string &value) const
 Accès à la valeur chaîne d'une propriété dont le type est une chaîne. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, unsigned int &value) const
 Accès à la valeur entière d'une propriété. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, std::string &value) const
 Accès à la valeur chaîne d'une propriété. More...
 
virtual bool read (Element const &it, cogitant::Property::Type tp, std::vector< cogitant::iSet > &value) const
 Accès à la valeur tableau d'entiers d'une propriété. More...
 
virtual void set (Element const &it, std::string const &tp, std::string const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, unsigned int value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, std::string const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void set (Element const &it, cogitant::Property::Type tp, std::vector< cogitant::iSet > const &value)
 Modification de la valeur d'une propriété. More...
 
virtual void remove (Element const &it, cogitant::Property::Type tp)
 Suppression d'une propriété. More...
 
virtual void remove (Element const &it, std::string const &tp)
 Suppression d'une propriété. More...
 
virtual bool posDefined (Element const &el) const
 La position de l'objet est elle définie ?. More...
 
virtual bool sizeDefined (Element const &el) const
 La taille de l'objet est elle définie ?. More...
 
virtual Point rPos (Element const &el) const
 Accès aux coordonnées de l'objet (relatives au parent). More...
 
virtual Size size (Element const &el) const
 Accès au rectangle englobant. More...
 
virtual bool rPos (Element const &el, Point const &p)
 Fixe les coordonnées de l'objet. More...
 
virtual bool size (Element const &el, Size const &s)
 Fixe la taille de l'objet. More...
 
Stylestyles ()
 Accès au gestionnaire de styles du dessin. More...
 
- Public Member Functions inherited from cogitant::CogitantObject
 CogitantObject ()
 Constructeur. More...
 
 CogitantObject (CogitantObject const &o)
 Constructeur par recopie. More...
 
virtual ~CogitantObject ()
 Destructeur. More...
 
PropertySetproperties ()
 Accès à l'ensemble des propriétés. More...
 
virtual std::string toString () const
 Transformation en chaîne de caractères. More...
 
std::string className () const
 Nom de la classe. More...
 
PropertySet const * properties () const
 Accès en lecture seule à l'ensemble des propriétés. More...
 
bool hasProperties () const
 Existence de propriétés. More...
 
CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 

Static Public Attributes

static Style::Id SID_ROOT
 Style racine.
 
static Style::Id SID_NODE
 Style parent pour les noeud (C,R,E).
 
static Style::Id SID_CONCEPT
 Style des sommets concepts.
 
static Style::Id SID_CONCEPTNESTING
 Style des sommets concepts ayant des emboitements.
 
static Style::Id SID_RELATION
 Style des sommets relations.
 
static Style::Id SID_NESTING
 Style des emboitements.
 
static Style::Id SID_GRAPH
 Style des graphes internes concepts.
 
static Style::Id SID_LINK
 Style des arêtes (étiquetées).
 
static Style::Id SID_LINK1
 Style des arêtes non étiquetées (SC vers SR, c'est à dire étiquette 1).
 
static Style::Id SID_LINK2
 Style des arêtes non étiquetées (SR vers SC, c'est à dire étiquette 2).
 
static Style::Id SID_LINK_ERROR
 Style des arêtes étiquetées (en erreur).
 
static Style::Id SID_LINK1_ERROR
 Style des arêtes non étiquetées (étiquette 1) (en erreur).
 
static Style::Id SID_LINK2_ERROR
 Style des arêtes non étiquetées (étiquette 2) (en erreur).
 
static Style::Id SID_GRAPHROOT
 Style du graphe racine.
 
static Style::Id SID_GRAPHGLOBAL
 Style du graphe global.
 
- Static Public Attributes inherited from cogitantdisplay::Drawing
static Style::Id SID_HIDDEN
 Identificateur de style "caché". More...
 

Protected Member Functions

bool nextEdge (cogitant::iSet iobj, cogitant::iSet &ilink, bool children) const
 Calcul de l'arête suivante. More...
 
- Protected Member Functions inherited from cogitant::CogitantObject
virtual PropertySetallocProperties () const
 Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More...
 

Protected Attributes

cogitant::Graphm_graph
 Le graphe à dessiner.
 
cogitant::Environmentm_environment
 L'environnement dont fait partie le graphe.
 
- Protected Attributes inherited from cogitantdisplay::Drawing
Style m_styles
 Les styles spécifiques au dessin (+ le lien vers la feuille de style parent).
 

Detailed Description

Classe permettant l'accès aux éléments graphiques utilisés pour déssiner un cogitant::Graph.

Cette classe offre un accès aux cogitant::GraphObject composant le graphe ainsi qu'aux arêtes composant le graphs, qui ne sont pas représentées par un cogitant::CogitantObject dans un cogitant::Graph.

ParcoursÉlément de départÉlément courantRemarques
ALLSans objeti: iSet de GraphObject ou i,i: iSet de Relation, iSet d'arête de cette relation.Les arêtes sont parcourues après les GraphObject.
PARENTi: iSet de GraphObject ou i,i : iSet de Relation, iSet d'arête de cette relation.i : iSet de GraphObject-
CHILDi,i : parcours vide ou i : GraphObject (un InternalGraph a pour fils les arêtes des Relation contenuesi : iSet de l'Edge de l'objet de départ ou i,i iSet de l'Edge de l'objet de départ (vers une Relation), iSet de l'Edge du sommet relation-
LINKEDi : GraphObject ou i,i Relation, iSet arête de la relationi iSet de l'arête ou 0/1 origine(SR) / extrémité (SC).
Examples:
wxdisplay.cpp.

Constructor & Destructor Documentation

◆ DrawingGraph()

cogitantdisplay::DrawingGraph::DrawingGraph ( cogitant::Environment env,
cogitant::Graph graph,
Style stylesheet = NULL 
)

Constructeur.

Member Function Documentation

◆ environment() [1/2]

cogitant::Environment* cogitantdisplay::DrawingGraph::environment ( )

Accès à l'environnement.

◆ environment() [2/2]

cogitant::Environment const* cogitantdisplay::DrawingGraph::environment ( ) const

Accès à l'environnement.

◆ getEdgeLabel()

cogitant::Edge::Label cogitantdisplay::DrawingGraph::getEdgeLabel ( Element const &  el) const

Retourne l'étiquette de l'arête correspondant à l'élément.

Precondition
el doit repérer un élément "arête".

◆ getElement()

Element cogitantdisplay::DrawingGraph::getElement ( cogitant::iSet  i1,
cogitant::iSet  i2 = cogitant::ISET_NULL 
)

Retourne l'élément qui représente l'objet du graphe dont l'identificateur est passé.

Parameters
i1identificateur de sommet concept, relation, emboîtement, graphe interne.
i2indice d'arête. Si ISET_NULL est passé (défaut) retourne un élément qui correspond à un sommet.
Returns
élément graphique correspondant à l'objet.

◆ getISet()

cogitant::iSet cogitantdisplay::DrawingGraph::getISet ( Element const &  el) const

Retourne l'identificateur de l'objet du graphe correspondant à l'élément.

Warning
pour les arêtes, retourne l'identificateur du sommet relation correspondant.

◆ getLabel()

std::string cogitantdisplay::DrawingGraph::getLabel ( Element const &  el) const
virtual

Retourne l'étiquette correspondant à l'élément de dessin.

Reimplemented from cogitantdisplay::Drawing.

◆ getLabelP()

bool cogitantdisplay::DrawingGraph::getLabelP ( Element const &  el) const
virtual

Retourne vrai si l'élément de dessin est étiquetté.

Cette méthode n'est pas indispensable puisqu'il est possible d'utiliser toujours getLabel(). D'ailleurs, l'implémentation par défaut de cette méthode est justement un appel à getLabel() et une comparaison de la chaine résultat avec la chaine vide. Mais il est possible de redéfinir cette méthode pour un traitement plus rapide, car certaines opérations ont besoin de déterminer si un élément de dessin est étiquetté ou pas, peu importe la valeur de l'étiquette (qui peut être coûteuse à calculer).

Reimplemented from cogitantdisplay::Drawing.

◆ getObject()

cogitant::CogitantObject const* cogitantdisplay::DrawingGraph::getObject ( Element const &  it) const
virtual

Accès à l'objet correspondant à un élément de dessin.

Warning
à utiliser avec précautions, car cette méthode peut retourner NULL dans le cas où un élément de dessin ne correspond pas à un cogitant::CogitantObject (les arêtes d'un graphe par exemple).

Implements cogitantdisplay::Drawing.

◆ getStyle()

Style::Id cogitantdisplay::DrawingGraph::getStyle ( Element const &  it) const
virtual

Retourne le style de l'élément de dessin.

Le style est utilisé pour déterminer les valeurs par défaut des propriétés de l'élément de dessin (celles qui ne sont pas définies dans l'ensemble de propriétés getPropertySet()). Un style repère en fait un ensemble de propriétés (associé au Drawing pour l'instant), et contient au moins le type de figure (ligne, rectangle, ellipse)).

Returns
par défaut, cette méthode retourne 0, ce qui évite de le redéfinir quand tous les éléments de dessin ont le même style.

Reimplemented from cogitantdisplay::Drawing.

◆ getSubId()

cogitant::iSet cogitantdisplay::DrawingGraph::getSubId ( Element const &  it) const
virtual

Accès à l'identificateur de sous-ensemble de propriétés.

Cette méthode doit être utilisée conjointement à getObject() pour obtenir le CogitantObject et l'identificateur de sous ensemble de propriétés à utiliser pour les propriétés de l'élément de dessin repéré par it.

Returns
par défaut, cette méthode retourne ISET_NULL, ce qui signifie que l'ensemble de propriétés de l'objet est utilisé pour le stockage des propriétés de l'élément de dessin.

Reimplemented from cogitantdisplay::Drawing.

◆ global()

Element cogitantdisplay::DrawingGraph::global ( ) const
virtual

Élément qui contient les propriétés globales.

Cet élément porte les propriétés globales (grille par exemple), il ne s'agit pas obligatoirement de l'élément racine, même si il s'agit de la racine par défaut. Cet élément ne figure pas obligatoirement dans un parcours de tous les éléments d'un dessin (par begin(), end()).

Reimplemented from cogitantdisplay::Drawing.

◆ graph() [1/3]

cogitant::Graph* cogitantdisplay::DrawingGraph::graph ( )

Accès au graphe.

◆ graph() [2/3]

cogitant::Graph const* cogitantdisplay::DrawingGraph::graph ( ) const

Accès au graphe.

◆ graph() [3/3]

void cogitantdisplay::DrawingGraph::graph ( cogitant::Environment env,
cogitant::Graph g 
)

Modification du graphe.

◆ ident()

Element cogitantdisplay::DrawingGraph::ident ( Iterator const &  it) const
virtual

Calcul de l'élément correspondant à un itérator.

Implements cogitantdisplay::Drawing.

◆ isEdge()

bool cogitantdisplay::DrawingGraph::isEdge ( Element const &  it,
unsigned int *  linked = NULL 
) const
virtual

Accès à la nature de l'élément.

Returns
true ssi l'élément est une arête. Dans ce cas, et si l'élément est lié à deux autres éléments, la modification de la position/taille des éléments liés (les sommets) entraîne la modification de la position de l'élément (arête). Au contraire, si l'élément n'est pas une arête (c'est à dire un sommet), la modification de la position/taille des élément liés (arêtes) n'entraîne pas de modification de la position de l'élément (sommet).
Parameters
itélément dont la nature est interrogée.
linkedsi un pointeur non NULL est passé et que l'élément est effectivement une arête, alors *linked contient en sortie le nombre d'éléments liés à cette arête.

Implements cogitantdisplay::Drawing.

◆ isSelectable()

bool cogitantdisplay::DrawingGraph::isSelectable ( Element const &  el) const
virtual

L'élément est-il sélectionnable.

Reimplemented from cogitantdisplay::Drawing.

◆ name()

std::string cogitantdisplay::DrawingGraph::name ( ) const
virtual

Nom du dessin.

Par défaut, cette méthode retourne une chaîne vide. Elle peut être redéfinie dans les sous-classes.

Reimplemented from cogitantdisplay::Drawing.

◆ next()

void cogitantdisplay::DrawingGraph::next ( Iterator it) const
virtual

Passage à l'itérateur suivant lors d'un parcours.

Implements cogitantdisplay::Drawing.

◆ nextEdge()

bool cogitantdisplay::DrawingGraph::nextEdge ( cogitant::iSet  iobj,
cogitant::iSet ilink,
bool  children 
) const
protected

Calcul de l'arête suivante.

Parameters
iobjidentificateur d'objet dont les arêtes doivent être parcourues.
ilink(D/R) identificateur de l'arête.
childrenrecherche des arêtes Edge::CHILD (true) ou des arêtes Edge::isEdge() (false).
Returns
true si l'arête suivante a été calculée (dans ilink), false sinon.

◆ root()

Element cogitantdisplay::DrawingGraph::root ( ) const
virtual

Élément racine (extérieur).

Cet élément est celui qui sert à démarrer le dessin.

Implements cogitantdisplay::Drawing.

◆ typeOf()

unsigned int cogitantdisplay::DrawingGraph::typeOf ( Element const &  el) const

Accès au "type" de l'élément graphique.

Cette méthode peut être utilisé pour connaitre le type d'un élément graphique. Il est préférable d'utiliser cette méthode que d'analyser le tableau d'entiers contenu dans l'Element.

Precondition
el doit être un élément de this.
Returns
1: cogitant::InternalGraph, 2: cogitant::Concept, 3: cogitant::Relation, 4: cogitant::Nesting, 5: cogitant::Edge, 6: cogitant::Graph.