Overview | Modules | Class Hierarchy | Classes | Members

Public Member Functions | Protected Member Functions | Protected Attributes | Friends
tlp::Graph Class Reference
Graphs

Interface for a graph. More...

`#include <Graph.h>`

Inheritance diagram for tlp::Graph:
[legend]
Collaboration diagram for tlp::Graph:
[legend]

List of all members.

## Public Member Functions

- Graph ()
- virtual ~Graph ()
- bool applyAlgorithm (const std::string &algorithm, std::string &errorMessage, DataSet *dataSet=NULL, PluginProgress *progress=NULL)
    Applies an algorithm plugin, identified by its name. Algorithm plugins are subclasses of the tlp::Algorithm interface. Parameters are transmitted to the algorithm trough the DataSet. To determine a plugin's parameters, you can either:
- virtual void clear ()=0
    Removes all nodes, edges and sub-graphs of the supergraph.
- virtual Graph * addSubGraph (BooleanProperty *selection=NULL, unsigned int id=0, std::string name="unnamed")=0
    Creates and returns a new sub-graph of this graph.
- Graph * addSubGraph (std::string name)
    Creates and returns a new named sub-graph of this graph.
- Graph * addCloneSubGraph (std::string name="unnamed")
    Creates and returns a subgraph of this graph that contains all its elements.
- Graph * inducedSubGraph (const std::set< node > &nodeSet, Graph *parentSubGraph=NULL)
- virtual void delSubGraph (Graph *)=0
- virtual void delAllSubGraphs (Graph *)=0
- virtual Graph * getSuperGraph () const =0
- virtual Graph * getRoot () const =0
- virtual void setSuperGraph (Graph *)=0
- virtual Iterator< Graph * > * getSubGraphs () const =0
- virtual bool isSubGraph (const Graph *sg) const =0
- virtual bool isDescendantGraph (const Graph *sg) const =0
- virtual Graph * getSubGraph (unsigned int id) const =0
- virtual Graph * getSubGraph (const std::string &name) const =0
- virtual Graph * getDescendantGraph (unsigned int id) const =0
- virtual Graph * getDescendantGraph (const std::string &name) const =0
- virtual node addNode ()=0
- virtual void addNodes (unsigned int nbNodes, std::vector< node > &addedNodes)=0
- virtual void addNode (const node)=0
- virtual void addNodes (Iterator< node > *nodes)=0
- virtual void delNode (const node n, bool deleteInAllGraphs=false)=0
- virtual void delNodes (Iterator< node > *itN, bool deleteInAllGraphs=false)=0
- virtual edge addEdge (const node, const node)=0
- virtual void addEdges (const std::vector< std::pair< node, node > > &edges, std::vector< edge > &addedEdges)=0
- virtual void addEdge (const edge)=0
- virtual void addEdges (Iterator< edge > *edges)=0
- virtual void delEdge (const edge e, bool deleteInAllGraphs=false)=0
- virtual void delEdges (Iterator< edge > *itE, bool deleteInAllGraphs=false)=0
- virtual void setEdgeOrder (const node, const std::vector< edge > &)=0
- virtual void swapEdgeOrder (const node, const edge, const edge)=0
- virtual void setSource (const edge, const node)=0
    Sets the source of an existing edge.
- virtual void setTarget (const edge, const node)=0
    Sets the target of an existing edge.
- virtual void setEnds (const edge, const node source, const node target)=0
    Sets both the source and target of an existing edge.
- virtual void reverse (const edge)=0
- virtual void reserveNodes (unsigned int nbNodes)=0
- virtual void reserveEdges (unsigned int nbEdges)=0
- virtual tlp::node getSource () const
    Finds the first node whose input degree equals 0.
- virtual node getOneNode () const =0
    Returns an existing node of the graph.
- virtual Iterator< node > * getNodes () const =0
    Returns an iterator on the nodes.
- virtual node getInNode (const node, unsigned int) const =0
    Returns the ith predecessor of a node.
- virtual Iterator< node > * getInNodes (const node) const =0
    Returns an iterator on the predecessors of a node.
- virtual node getOutNode (const node, unsigned int) const =0
    Returns the ith successor of a node.
- virtual Iterator< node > * getOutNodes (const node) const =0
    Returns an iterator on the successors of a node.
- virtual Iterator< node > * getInOutNodes (const node) const =0
    Returns an iterator on the neighbours of a node.
- virtual Graph * getNodeMetaInfo (const node) const =0
    Returns the underlying graph of a meta node.
- virtual Iterator< edge > * getEdges () const =0
    Returns an iterator on the edges.
- virtual edge getOneEdge () const =0
    Returns an existing edge of the graph.
- virtual Iterator< edge > * getOutEdges (const node) const =0
    Returns an iterator on the outgoing edges of a node.
- virtual Iterator< edge > * getInOutEdges (const node) const =0
    Returns an iterator on the incoming and outgoing edges of a node.
- virtual Iterator< edge > * getInEdges (const node) const =0
    Returns an iterator on the incoming edges of a node.
- virtual Iterator< edge > * getEdgeMetaInfo (const edge) const =0
    Returns an iterator on the underlying edges of a meta edge.
- unsigned int getId () const
    Returns the graph's id. This id is unique.
- virtual unsigned int numberOfNodes () const =0
    Returns the number of nodes in the graph.
- virtual unsigned int numberOfEdges () const =0
    Returns the number of edges in the graph.
- virtual unsigned int deg (const node) const =0
    Returns the degree of a node.
- virtual unsigned int indeg (const node) const =0
    Returns the incoming degree of a node.
- virtual unsigned int outdeg (const node) const =0
    Returns the outgoing degree of a node.
- virtual node source (const edge) const =0
    Returns the source of the edge.
- virtual node target (const edge) const =0
    Returns the target of the edge.
- virtual const std::pair< node,
  node > & ends (const edge) const =0
- virtual node opposite (const edge, const node) const =0
    Returns the opposite node for n in the edge e.
- virtual bool isElement (const node) const =0
    Returns true if the node is an element of the graph.
- virtual bool isMetaNode (const node) const =0
    Returns true if the node is a meta node.
- virtual bool isElement (const edge) const =0
    Returns true if the edge is an element of the graph.
- virtual bool isMetaEdge (const edge) const =0
    Returns true if the edge is a meta edge.
- virtual edge existEdge (const node source, const node target, bool directed=true) const =0
- const DataSet & getAttributes () const
    Returns graph attributes.
- template<typename ATTRIBUTETYPE > bool getAttribute (const std::string &name, ATTRIBUTETYPE &value) const
- template<typename ATTRIBUTETYPE > _DEPRECATED ATTRIBUTETYPE getAttribute (const std::string &name) const
    Deprecated version of the previous method.
- DataType * getAttribute (const std::string &name) const
    Untyped accessor returning a copy.
- template<typename ATTRIBUTETYPE > void setAttribute (const std::string &name, const ATTRIBUTETYPE &value)
    Sets an attribute of the graph.
- void setAttribute (const std::string &name, const DataType *value)
    Sets attritute from an untyped value.
- void removeAttribute (const std::string &name)
    Removes an existing attribute.
- bool attributeExist (const std::string &name)
    Returns if the attribute exist.
- virtual void addLocalProperty (const std::string &name, PropertyInterface *prop)=0
- template<typename PropertyType > PropertyType * getLocalProperty (const std::string &name)
- PropertyInterface * getLocalProperty (const std::string &propertyName, const std::string &propertyType)
- bool applyPropertyAlgorithm (const std::string &algorithm, PropertyInterface *result, std::string &msg, PluginProgress *progress=NULL, DataSet *data=NULL)
- template<typename PropertyType > _DEPRECATED bool computeProperty (const std::string &algorithm, PropertyType *result, std::string &msg, PluginProgress *progress=NULL, DataSet *data=NULL)
- template<typename PropertyType > PropertyType * getProperty (const std::string &name)
- virtual PropertyInterface * getProperty (const std::string &name) const =0
- PropertyInterface * getProperty (const std::string &propertyName, const std::string &propertyType)
- virtual bool existProperty (const std::string &name) const =0
- virtual bool existLocalProperty (const std::string &name) const =0
- virtual void delLocalProperty (const std::string &name)=0
- virtual Iterator< std::string > * getLocalProperties () const =0
- virtual Iterator< std::string > * getInheritedProperties () const =0
- virtual Iterator< std::string > * getProperties () const =0
- virtual Iterator
  < PropertyInterface * > * getLocalObjectProperties () const =0
- virtual Iterator
  < PropertyInterface * > * getInheritedObjectProperties () const =0
- virtual Iterator
  < PropertyInterface * > * getObjectProperties () const =0
- void addGraphObserver (GraphObserver *) const
- unsigned int countGraphObservers () const
- void removeGraphObserver (GraphObserver *) const
- virtual void push (bool unpopAllowed=true, std::vector< PropertyInterface * > *propertiesToPreserveOnPop=NULL)=0
- virtual void pop (bool unpopAllowed=true)=0
- virtual void unpop ()=0
- virtual bool canPop ()=0
- virtual bool canUnpop ()=0
- virtual bool canPopThenUnpop ()=0
- node createMetaNode (const std::set< node > &nodeSet, bool multiEdges=true, bool delAllEdge=true)
- void createMetaNodes (Iterator< Graph * > *itS, Graph *quotientGraph, std::vector< node > &metaNodes)
- node createMetaNode (Graph *subGraph, bool multiEdges=true, bool delAllEdge=true)
- void openMetaNode (node n, bool updateProperties=true)
- virtual Graph * getNthSubGraph (unsigned int n) const
- virtual unsigned int numberOfSubGraphs () const =0
- virtual unsigned int numberOfDescendantGraphs () const =0
- virtual void setName (const std::string &name)=0
- virtual std::string getName () const =0

## Protected Member Functions

- virtual DataSet & getNonConstAttributes ()=0
- virtual node restoreNode (node)=0
- virtual void restoreNodes (const std::vector< node > &nodes)=0
- virtual edge restoreEdge (edge, node source, node target)=0
- virtual void restoreEdges (const std::vector< edge > &edges, const std::vector< std::pair< node, node > > &ends)=0
- virtual void removeNode (const node)=0
- virtual void removeEdge (const edge)=0
- virtual bool canDeleteProperty (Graph *g, PropertyInterface *prop)
- virtual void removeSubGraph (Graph *)=0
- virtual void clearSubGraphs ()=0
- virtual void restoreSubGraph (Graph *)=0
- virtual void setSubGraphToKeep (Graph *)=0
- void notifyAddNode (const node n)
- void notifyAddNode (Graph *, const node n)
- void notifyAddEdge (const edge e)
- void notifyAddEdge (Graph *, const edge e)
- void notifyBeforeSetEnds (const edge e)
- void notifyBeforeSetEnds (Graph *, const edge e)
- void notifyAfterSetEnds (const edge e)
- void notifyAfterSetEnds (Graph *, const edge e)
- void notifyDelNode (const node n)
- void notifyDelNode (Graph *, const node n)
- void notifyDelEdge (const edge e)
- void notifyDelEdge (Graph *, const edge e)
- void notifyReverseEdge (const edge e)
- void notifyReverseEdge (Graph *, const edge e)
- void notifyAddSubGraph (const Graph *)
- void notifyAddSubGraph (Graph *, const Graph *sg)
- void notifyDelSubGraph (const Graph *)
- void notifyDelSubGraph (Graph *, const Graph *sg)
- void notifyAddLocalProperty (const std::string &)
- void notifyAddLocalProperty (Graph *, const std::string &name)
- void notifyBeforeDelLocalProperty (const std::string &)
- void notifyAfterDelLocalProperty (const std::string &)
- void notifyDelLocalProperty (Graph *, const std::string &name)
- void notifyBeforeSetAttribute (const std::string &)
- void notifyBeforeSetAttribute (Graph *, const std::string &name)
- void notifyAfterSetAttribute (const std::string &)
- void notifyAfterSetAttribute (Graph *, const std::string &name)
- void notifyRemoveAttribute (const std::string &)
- void notifyRemoveAttribute (Graph *, const std::string &name)
- void notifyDestroy ()
- void notifyDestroy (Graph *)

## Protected Attributes

- unsigned int id
- TLP_HASH_MAP< std::string,
  tlp::PropertyInterface * > circularCalls

## Friends

- class GraphAbstract
- class GraphUpdatesRecorder
- class GraphDecorator
- class PropertyManager

## Detailed Description

Interface for a graph.

The class Graph is the interface of a Graph in the Tulip Library.

## Member Function Documentation

DataType* tlp::Graph::getAttribute | ( | const std::string & | name | ) | const

Untyped accessor returning a copy.

## Friends And Related Function Documentation

friend class GraphAbstract`[friend]`

Tulip Software by LaBRI Visualization Team 2001 - 2012