Tulip  4.10.0
Better Visualization Through Research
tlp::AbstractProperty< Tnode, Tedge, Tprop > Class Template Reference

#include <AbstractProperty.h>

+ Inheritance diagram for tlp::AbstractProperty< Tnode, Tedge, Tprop >:

Classes

class  MetaValueCalculator
 

Public Member Functions

 AbstractProperty (Graph *, const std::string &n="")
 
int compare (const node n1, const node n2) const
 
int compare (const edge e1, const edge e2) const
 
virtual void computeMetaValue (node n, const Graph *sg, const Graph *mg)
 
virtual void computeMetaValue (edge e, tlp::Iterator< edge > *itE, const Graph *mg)
 
virtual bool copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false)
 
virtual bool copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false)
 
virtual void copy (PropertyInterface *property)
 
virtual unsigned int edgeValueSize () const
 
virtual void erase (const node n)
 
virtual void erase (const edge e)
 
virtual DataMem * getEdgeDataMemValue (const edge e) const
 
virtual DataMem * getEdgeDefaultDataMemValue () const
 
virtual std::string getEdgeDefaultStringValue () const
 
virtual Tedge::RealType getEdgeDefaultValue () const
 
virtual std::string getEdgeStringValue (const edge e) const
 
virtual tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue getEdgeValue (const edge e) const
 
virtual DataMem * getNodeDataMemValue (const node n) const
 
virtual DataMem * getNodeDefaultDataMemValue () const
 
virtual std::string getNodeDefaultStringValue () const
 
virtual Tnode::RealType getNodeDefaultValue () const
 
virtual std::string getNodeStringValue (const node n) const
 
virtual tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue getNodeValue (const node n) const
 
virtual DataMem * getNonDefaultDataMemValue (const node n) const
 
virtual DataMem * getNonDefaultDataMemValue (const edge e) const
 
virtual tlp::Iterator< edge > * getNonDefaultValuatedEdges (const Graph *g=NULL) const
 
virtual tlp::Iterator< node > * getNonDefaultValuatedNodes (const Graph *g=NULL) const
 
virtual unsigned int nodeValueSize () const
 
virtual unsigned int numberOfNonDefaultValuatedEdges (const Graph *=NULL) const
 
virtual unsigned int numberOfNonDefaultValuatedNodes (const Graph *g=NULL) const
 
virtual AbstractProperty< Tnode, Tedge, Tprop > & operator= (AbstractProperty< Tnode, Tedge, Tprop > &prop)
 
virtual bool readEdgeDefaultValue (std::istream &)
 
virtual bool readEdgeValue (std::istream &, edge)
 
virtual bool readNodeDefaultValue (std::istream &)
 
virtual bool readNodeValue (std::istream &, node)
 
virtual void setAllEdgeDataMemValue (const DataMem *v)
 
virtual bool setAllEdgeStringValue (const std::string &inV, const Graph *graph=NULL)
 
virtual void setAllEdgeValue (const typename Tedge::RealType &v, const Graph *graph=NULL)
 
virtual void setAllNodeDataMemValue (const DataMem *v)
 
virtual bool setAllNodeStringValue (const std::string &inV, const Graph *graph=NULL)
 
virtual void setAllNodeValue (const typename Tnode::RealType &v, const Graph *graph=NULL)
 
virtual void setEdgeDataMemValue (const edge e, const DataMem *v)
 
virtual bool setEdgeStringValue (const edge inE, const std::string &inV)
 
virtual void setEdgeValue (const edge e, const typename Tedge::RealType &v)
 
virtual void setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc)
 
virtual void setNodeDataMemValue (const node n, const DataMem *v)
 
virtual bool setNodeStringValue (const node inN, const std::string &inV)
 
virtual void setNodeValue (const node n, const typename Tnode::RealType &v)
 
virtual void writeEdgeDefaultValue (std::ostream &) const
 
virtual void writeEdgeValue (std::ostream &, edge) const
 
virtual void writeNodeDefaultValue (std::ostream &) const
 
virtual void writeNodeValue (std::ostream &, node) const
 

Protected Member Functions

virtual void clone_handler (AbstractProperty< Tnode, Tedge, Tprop > &)
 

Protected Attributes

Tedge::RealType edgeDefaultValue
 
MutableContainer< typename Tedge::RealType > edgeProperties
 
Tnode::RealType nodeDefaultValue
 
MutableContainer< typename Tnode::RealType > nodeProperties
 

Friends

class Graph
 
class GraphView
 

Detailed Description

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
class tlp::AbstractProperty< Tnode, Tedge, Tprop >

This class extends upon PropertyInterface, and adds type-safe methods to get and set the node and edge values, through the magic of template programming.

Nodes and Edges can have different types (e.g. tlp::LayoutProperty has tlp::PointType as node type and tlp::LineType as edge type), but most of the time they have the same type (e.g. tlp::DoubleProperty, tlp::IntegerProperty).

Some of the pure virtual functions of PropertyInterface are implemented in this class (e.g. erase()).

The actual data is stored in this class, and it manages the default values.

Definition at line 54 of file AbstractProperty.h.

Member Function Documentation

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::clone_handler ( AbstractProperty< Tnode, Tedge, Tprop > &  )
inlineprotectedvirtual

Enable to clone part of sub_class.

Definition at line 423 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const node  n)
inlinevirtual

Resets the value of a node to the default value.

Parameters
nThe node to reset the value of.

Definition at line 140 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const edge  e)
inlinevirtual

Resets the value of an edge to the default value.

Parameters
eThe edge to reset the value of.

Definition at line 151 of file AbstractProperty.h.

template<class Tnode , class Tedge , class Tprop >
Tedge::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeDefaultValue ( ) const
virtual

Gets the default edge value of the property.

Returns
The default value of edges.

Definition at line 38 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeValue ( const edge  e) const
virtual

Returns the value associated to the edge e in this property. If there is no value, it returns the default edge value.

Parameters
eThe edge for which we want to get the value of the property.
Returns
:StoredType< Tedge::RealType >::ReturnedConstValue The value of the property for this edge.

Definition at line 49 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
Tnode::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeDefaultValue ( ) const
virtual

Gets the default node value of the property.

Returns
The default value of nodes.

Definition at line 33 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeValue ( const node  n) const
virtual

Returns the value associated with the node n in this property. If there is no value, it returns the default node value.

Parameters
nThe node for which we want to get the value of the property.
Returns
:StoredType< Tnode::RealType >::ReturnedConstValue The value of the property for this node.

Definition at line 43 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual AbstractProperty<Tnode,Tedge,Tprop>& tlp::AbstractProperty< Tnode, Tedge, Tprop >::operator= ( AbstractProperty< Tnode, Tedge, Tprop > &  prop)
inlinevirtual

This operator overload allows to copy a property using the following syntax :

IntegerProperty* shape = graph->getProperty<IntegerProperty>("viewShape");
IntegerProperty* backup = graph->getProperty<IntegerProperty>("shapeBackup");
*backup = *shape; // all the values from 'shape' will be copied into 'backup'.
Parameters
propThe property nto copy the values from.
Returns
This property with the values copied.

Definition at line 166 of file AbstractProperty.h.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllEdgeValue ( const typename Tedge::RealType &  v,
const Graph graph = NULL 
)
virtual

Sets the value of all edges and notify the observers. All previous values are lost and the given value is assigned as the default one to the future added edges.

Parameters
graph(since Tulip 4.10) An optional descendant graph from the one associated to that property (itself included). If provided, only the edges from that descendant graph will have their value modified. In the case of the descendant graph is different from the one associated to that property, the default edge value will not be modified.
Warning
If the provided graph is not a descendant of the one associated to that property, no edge value will be modified in it.
Parameters
vThe value to set to all edges.

Definition at line 87 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllNodeValue ( const typename Tnode::RealType &  v,
const Graph graph = NULL 
)
virtual

Sets the value of all nodes and notify the observers. All previous values are lost and the given value is assigned as the default one to the future added nodes.

Parameters
vThe value to set to all nodes.
graph(since Tulip 4.10) An optional descendant graph from the one associated to that property (itself included). If provided, only the nodes from that descendant graph will have their value modified. In the case of the descendant graph is different from the one associated to that property, the default node value will not be modified.
Warning
If the provided graph is not a descendant of the one associated to that property, no node value will be modified in it.

Definition at line 71 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setEdgeValue ( const edge  e,
const typename Tedge::RealType &  v 
)
virtual

Set the value of an edge and notify the observers of a modification.

Parameters
eThe edge to set the value of.
vThe value to affect for this edge.

Definition at line 63 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setNodeValue ( const node  n,
const typename Tnode::RealType &  v 
)
virtual

Sets the value of a node and notify the observers of a modification.

Parameters
nThe node to set the value of.
vThe value to affect for this node.
Examples:
graph_display/graph_display.cpp.

Definition at line 55 of file AbstractProperty.cxx.

+ Here is the call graph for this function: