Tulip  4.6.0
Better Visualization Through Research
tlp::MinMaxProperty< nodeType, edgeType, propType > Class Template Reference

#include <minmaxproperty.h>

+ Inheritance diagram for tlp::MinMaxProperty< nodeType, edgeType, propType >:
+ Collaboration diagram for tlp::MinMaxProperty< nodeType, edgeType, propType >:

List of all members.

Public Member Functions

 MinMaxProperty (tlp::Graph *graph, const std::string &name, typename nodeType::RealType NodeMin, typename nodeType::RealType NodeMax, typename edgeType::RealType EdgeMin, typename edgeType::RealType EdgeMax)
edgeType::RealType getEdgeMax (Graph *graph=NULL)
edgeType::RealType getEdgeMin (Graph *graph=NULL)
nodeType::RealType getNodeMax (Graph *graph=NULL)
nodeType::RealType getNodeMin (Graph *graph=NULL)
virtual void treatEvent (const tlp::Event &ev)
void updateAllEdgesValues (typename edgeType::RealType newValue)
void updateAllNodesValues (typename nodeType::RealType newValue)
template<>
void updateEdgeValue (tlp::edge e, tlp::LineType::RealType newValue)
void updateEdgeValue (tlp::edge e, typename edgeType::RealType newValue)
void updateNodeValue (tlp::node n, typename nodeType::RealType newValue)

Protected Member Functions

 MINMAX_MAP (nodeType) minMaxNode
 MINMAX_MAP (edgeType) minMaxEdge
 MINMAX_PAIR (nodeType) computeMinMaxNode(Graph *graph)
 MINMAX_PAIR (edgeType) computeMinMaxEdge(Graph *graph)
void removeListenersAndClearEdgeMap ()
void removeListenersAndClearNodeMap ()

Protected Attributes

edgeType::RealType _edgeMax
edgeType::RealType _edgeMin
nodeType::RealType _nodeMax
nodeType::RealType _nodeMin
bool needGraphListener

Detailed Description

template<typename nodeType, typename edgeType, typename propType = PropertyInterface>
class tlp::MinMaxProperty< nodeType, edgeType, propType >

Abstracts the computation of minimal and maximal values on node and edge values of properties.

The value is lazily computed on first request. The value is cached, and the cache is invalidated whenever it cannot be simply updated.

Definition at line 39 of file minmaxproperty.h.


Constructor & Destructor Documentation

template<typename nodeType , typename edgeType , typename propType >
tlp::MinMaxProperty< nodeType, edgeType, propType >::MinMaxProperty ( tlp::Graph graph,
const std::string &  name,
typename nodeType::RealType  NodeMin,
typename nodeType::RealType  NodeMax,
typename edgeType::RealType  EdgeMin,
typename edgeType::RealType  EdgeMax 
)

Constructs a MinMaxProperty.

Parameters:
graphThe graph to attach the property to.
nameThe name of the property.
NodeMinThe minimal value the property can take for nodes (e.g. INT_MIN)
NodeMaxThe maximal value the property can take for nodes (e.g. INT_MIN)
EdgeMinThe minimal value the property can take for edges (e.g. INT_MIN)
EdgeMaxThe maximal value the property can take for edges (e.g. INT_MIN)

Definition at line 23 of file minmaxproperty.cxx.


Member Function Documentation

template<typename nodeType , typename edgeType , typename propType >
edgeType::RealType tlp::MinMaxProperty< nodeType, edgeType, propType >::getEdgeMax ( tlp::Graph graph = NULL)

Computes the maximum value on the edges. It is only computed if it has never been retrieved before, or if the cached value could not be updated.

Parameters:
graphThe graph on which to compute.
Returns:
The maximal value on this graph for this property.

Definition at line 74 of file minmaxproperty.cxx.

+ Here is the call graph for this function:

template<typename nodeType , typename edgeType , typename propType >
edgeType::RealType tlp::MinMaxProperty< nodeType, edgeType, propType >::getEdgeMin ( tlp::Graph graph = NULL)

Computes the minimum value on the edges. It is only computed if it has never been retrieved before, or if the cached value could not be updated.

Parameters:
graphThe graph on which to compute.
Returns:
The minimal value on this graph for this property.

Definition at line 59 of file minmaxproperty.cxx.

+ Here is the call graph for this function:

template<typename nodeType , typename edgeType , typename propType >
nodeType::RealType tlp::MinMaxProperty< nodeType, edgeType, propType >::getNodeMax ( tlp::Graph graph = NULL)

Computes the maximum value on the nodes. It is only computed if it has never been retrieved before, or if the cached value could not be updated.

Parameters:
graphThe graph on which to compute.
Returns:
The maximal value on this graph for this property.

Definition at line 44 of file minmaxproperty.cxx.

+ Here is the call graph for this function:

template<typename nodeType , typename edgeType , typename propType >
nodeType::RealType tlp::MinMaxProperty< nodeType, edgeType, propType >::getNodeMin ( tlp::Graph graph = NULL)

Gets the minimum value on the nodes. It is only computed if it has never been retrieved before, or if the cached value could not be updated.

Parameters:
graphThe graph on which to compute.
Returns:
The minimal value on this graph for this property.

Definition at line 29 of file minmaxproperty.cxx.

+ Here is the call graph for this function:

template<typename nodeType , typename edgeType , typename propType >
void tlp::MinMaxProperty< nodeType, edgeType, propType >::updateAllEdgesValues ( typename edgeType::RealType  newValue)

Updates the value of all edges, setting the maximum and minimum values to this. Should be called by subclasses in order to keep the cache up to date.

Parameters:
newValueThe new maximal and minimal value.

Definition at line 311 of file minmaxproperty.cxx.

template<typename nodeType , typename edgeType , typename propType >
void tlp::MinMaxProperty< nodeType, edgeType, propType >::updateAllNodesValues ( typename nodeType::RealType  newValue)

Updates the value of all nodes, setting the maximum and minimum values to this. Should be called by subclasses in order to keep the cache up to date.

Parameters:
newValueThe new maximal and minimal value.

Definition at line 299 of file minmaxproperty.cxx.

template<typename nodeType , typename edgeType , typename propType >
void tlp::MinMaxProperty< nodeType, edgeType, propType >::updateEdgeValue ( tlp::edge  e,
typename edgeType::RealType  newValue 
)

Updates the value on an edge, and updates the minimal/maximal cached values if necessary. Should be called by subclasses in order to keep the cache up to date.

Parameters:
eThe edge for which the value is updated.
newValueThe new value on this edge.

Definition at line 274 of file minmaxproperty.cxx.

template<typename nodeType , typename edgeType , typename propType >
void tlp::MinMaxProperty< nodeType, edgeType, propType >::updateNodeValue ( tlp::node  n,
typename nodeType::RealType  newValue 
)

Updates the value on a node, and updates the minimal/maximal cached values if necessary. Should be called by subclasses in order to keep the cache up to date.

Parameters:
nThe node for which the value is updated.
newValueThe new value on this node.

Definition at line 249 of file minmaxproperty.cxx.

 All Classes Files Functions Variables Enumerations Enumerator Properties