Tulip  4.2.0
Better Visualization Through Research
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Groups Pages
tlp::LayoutProperty Class Reference

#include <LayoutProperty.h>

Inherits tlp::MinMaxProperty< nodeType, edgeType >.

Public Member Functions

 LayoutProperty (Graph *graph, std::string name="", bool updateOnEdgeReversal=true)
 
std::vector< double > angularResolutions (const node n, const Graph *subgraph=NULL) const
 
double averageAngularResolution (const Graph *subgraph=NULL) const
 
double averageAngularResolution (const node n, const Graph *subgraph=NULL) const
 
double averageEdgeLength (const Graph *subgraph=NULL) const
 
void center (Graph *subgraph=NULL)
 
void center (const Vec3f &newCenter, Graph *subgraph=NULL)
 
PropertyInterfaceclonePrototype (Graph *, const std::string &)
 
void computeEmbedding (Graph *subgraph=NULL)
 
void computeEmbedding (const node n, Graph *subgraph=NULL)
 
unsigned int crossingNumber () const
 
double edgeLength (const edge e) const
 
Coord getMax (Graph *subgraph=NULL)
 
Coord getMin (Graph *subgraph=NULL)
 
std::string getTypename () const
 
void normalize (Graph *subgraph=NULL)
 
void perfectAspectRatio ()
 
void rotateX (const double &alpha, Graph *subgraph=NULL)
 
void rotateX (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges)
 
void rotateY (const double &alpha, Graph *subgraph=NULL)
 
void rotateY (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges)
 
void rotateZ (const double &alpha, Graph *subgraph=NULL)
 
void rotateZ (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges)
 
void scale (const Vec3f &scaleFactors, Graph *subgraph=NULL)
 
void scale (const Vec3f &scaleFactors, Iterator< node > *itNodes, Iterator< edge > *itEdges)
 
virtual void setAllEdgeValue (const std::vector< Coord > &v)
 
virtual void setAllNodeValue (const Coord &v)
 
virtual void setEdgeValue (const edge, const std::vector< Coord > &v)
 
virtual void setNodeValue (const node, const Coord &v)
 
void translate (const Vec3f &move, Graph *subgraph=NULL)
 
void translate (const Vec3f &move, Iterator< node > *itNodes, Iterator< edge > *itEdges)
 
- Public Member Functions inherited from tlp::MinMaxProperty< nodeType, edgeType >
 MinMaxProperty (tlp::Graph *graph, 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)
 
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)
 
- Public Member Functions inherited from tlp::AbstractProperty< nodeType, edgeType >
 AbstractProperty (Graph *, 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, Graph *sg, Graph *mg)
 
virtual void computeMetaValue (edge e, tlp::Iterator< edge > *itE, 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 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 edgeType::RealType getEdgeDefaultValue () const
 
virtual std::string getEdgeStringValue (const edge e) const
 
virtual tlp::StoredType
< typename edgeType::RealType >
::ReturnedConstValue 
getEdgeValue (const edge e) const
 
virtual DataMem * getNodeDataMemValue (const node n) const
 
virtual DataMem * getNodeDefaultDataMemValue () const
 
virtual std::string getNodeDefaultStringValue () const
 
virtual nodeType::RealType getNodeDefaultValue () const
 
virtual std::string getNodeStringValue (const node n) const
 
virtual tlp::StoredType
< typename nodeType::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 AbstractProperty
< nodeType, edgeType > & 
operator= (AbstractProperty< nodeType, edgeType > &prop)
 
virtual void setAllEdgeDataMemValue (const DataMem *v)
 
virtual bool setAllEdgeStringValue (const std::string &inV)
 
virtual void setAllEdgeValue (const typename edgeType::RealType &v)
 
virtual void setAllNodeDataMemValue (const DataMem *v)
 
virtual bool setAllNodeStringValue (const std::string &inV)
 
virtual void setAllNodeValue (const typename nodeType::RealType &v)
 
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 edgeType::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 nodeType::RealType &v)
 
- Public Member Functions inherited from tlp::PropertyInterface
void addPropertyObserver (Observable *pObs)
 
tlp::GraphgetGraph () const
 
MetaValueCalculatorgetMetaValueCalculator ()
 
const std::string & getName () const
 
void removePropertyObserver (Observable *pObs)
 
- Public Member Functions inherited from tlp::Observable
void addListener (Observable *const listener) const
 
void addObserver (Observable *const observer) const
 
unsigned int countListeners () const
 
unsigned int countObservers () const
 
unsigned int getReceived () const
 
unsigned int getSent () const
 
void removeListener (Observable *const listener) const
 
void removeObserver (Observable *const observerver) const
 

Static Public Attributes

static const std::string propertyTypename
 

Protected Member Functions

virtual void clone_handler (AbstractProperty< tlp::PointType, tlp::LineType > &)
 
- Protected Member Functions inherited from tlp::MinMaxProperty< nodeType, edgeType >
void computeMinMaxEdge (Graph *graph)
 
template<>
void computeMinMaxNode (Graph *sg)
 
void computeMinMaxNode (Graph *graph)
 
- Protected Member Functions inherited from tlp::AbstractProperty< nodeType, edgeType >
virtual void clone_handler (AbstractProperty< nodeType, edgeType > &)
 
- Protected Member Functions inherited from tlp::PropertyInterface
void notifyAfterSetAllEdgeValue ()
 
void notifyAfterSetAllNodeValue ()
 
void notifyAfterSetEdgeValue (const edge e)
 
void notifyAfterSetNodeValue (const node n)
 
void notifyBeforeSetAllEdgeValue ()
 
void notifyBeforeSetAllNodeValue ()
 
void notifyBeforeSetEdgeValue (const edge e)
 
void notifyBeforeSetNodeValue (const node n)
 
void notifyDestroy ()
 
- Protected Member Functions inherited from tlp::Observable
 Observable (const Observable &)
 
tlp::Iterator< tlp::Observable * > * getObservables () const
 
bool hasOnlookers () const
 
void notifyObservers ()
 
void observableDeleted ()
 
Observableoperator= (const Observable &)
 
void sendEvent (const Event &message)
 
virtual void treatEvents (const std::vector< Event > &events)
 

Additional Inherited Members

- Static Public Member Functions inherited from tlp::Observable
static ObservablegetObject (tlp::node n)
 
static const tlp::VectorGraph & getObservableGraph ()
 
static void holdObservers ()
 
static bool isAlive (tlp::node n)
 
static unsigned int observersHoldCounter ()
 
static void unholdObservers ()
 
- Protected Attributes inherited from tlp::MinMaxProperty< nodeType, edgeType >
edgeType::RealType _edgeMax
 
edgeType::RealType _edgeMin
 
nodeType::RealType _nodeMax
 
nodeType::RealType _nodeMin
 
TLP_HASH_MAP< unsigned int, bool > edgeValueUptodate
 
TLP_HASH_MAP< unsigned int,
typename edgeType::RealType > 
maxEdge
 
TLP_HASH_MAP< unsigned int,
typename nodeType::RealType > 
maxNode
 
TLP_HASH_MAP< unsigned int,
typename edgeType::RealType > 
minEdge
 
TLP_HASH_MAP< unsigned int,
typename nodeType::RealType > 
minNode
 
TLP_HASH_MAP< unsigned int, bool > nodeValueUptodate
 

Detailed Description

A graph property that maps a tlp::Coord value to graph nodes and std::vector<tlp::Coord> for edges.

Examples:
clique_import/cliqueimport.cpp.

Definition at line 48 of file LayoutProperty.h.

Member Function Documentation

std::vector<double> tlp::LayoutProperty::angularResolutions ( const node  n,
const Graph subgraph = NULL 
) const

Returns a vector of all angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinate is omitted

Parameters
nthe graph node on which to compute the angular resolution
subgraphIf not null, only computes the average angular resolution for the node in that sub-graph
double tlp::LayoutProperty::averageAngularResolution ( const Graph subgraph = NULL) const

Returns the average angular resolution of the layout. It is only defined for 2D drawing, meaning the third coordinate is omitted

Parameters
subgraphIt not null, only computes the average angular resolution for that sub-graph
double tlp::LayoutProperty::averageAngularResolution ( const node  n,
const Graph subgraph = NULL 
) const

Returns the average angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinate is omitted

Parameters
nthe graph node on which to compute the angular resolution
subgraphIf not null, only computes the average angular resolution for the node in that sub-graph
double tlp::LayoutProperty::averageEdgeLength ( const Graph subgraph = NULL) const

Returns the average edge length of the layout, the bends are taken into account

Parameters
subgraphIf not null, only compute the average edge length for that sub-graph
void tlp::LayoutProperty::center ( Graph subgraph = NULL)

Centers the layout, meaning translating it in order that the center of its bounding box is (0,0,0)

Parameters
subgraphIf not null, only centers the layout of that sub-graph
void tlp::LayoutProperty::center ( const Vec3f &  newCenter,
Graph subgraph = NULL 
)

Centers the layout to newCenter, meaning translating it in order that the center of its bounding box is equal to newCenter

Parameters
newCenterthe coordinate of the new layout center
subgraphIf not null, only centers the layout of that sub-graph
PropertyInterface* tlp::LayoutProperty::clonePrototype ( Graph graph,
const std::string &  name 
)
virtual

Creates a property of the same type (e.g. tlp::DoubleProperty) in the graph. The new property will not contain a copy of this property's values.

Parameters
graphThe Graph in which to create the new property.
nameThe name of the new property.
Returns
The newly created property.

Implements tlp::PropertyInterface.

void tlp::LayoutProperty::computeEmbedding ( Graph subgraph = NULL)

Fixes embedding of the graph according to the layout ie. sort edges around nodes according to their neighbors/bends position in the layout/ Only works in 2D, the third coordinate is not taken into account.

Parameters
subgraphIt not null, only fixes embedding in that sub-graph
void tlp::LayoutProperty::computeEmbedding ( const node  n,
Graph subgraph = NULL 
)

Fixes embedding of the node according to the layout ie. sort edges around the node according to its neighbors/bends position in the layout/ Only work in 2D, the third coordinate is not taken into account.

Parameters
nthe graph node on which to fix embedding
subgraphIf not null, only fixes the embedding of the node in that sub-graph
unsigned int tlp::LayoutProperty::crossingNumber ( ) const

Returns the number of crossings in the layout

double tlp::LayoutProperty::edgeLength ( const edge  e) const

Returns the length of an edge, the bends are taken into account. Thus, it measure the length of a polyline.

Parameters
ethe graph edge on which to compute its length
Warning
this function only measure the length of the polyline between bends, when using curves like Bézier etc... the result will not be the length of the curve.
Coord tlp::LayoutProperty::getMax ( Graph subgraph = NULL)

Returns the maximum coordinate of the layout, i.e. the top-right corner of the induced bounding box

Parameters
subgraphIf not null, returns the maximum coordinate for a sub-graph layout
Coord tlp::LayoutProperty::getMin ( Graph subgraph = NULL)

Returns the minimum coordinate of the layout, i.e. the bottom-left corner of the induced bounding box

Parameters
subgraphIf not null, returns the minimum coordinate for a sub-graph layout
std::string tlp::LayoutProperty::getTypename ( ) const
inlinevirtual

Gets a string describing the type of the property (e.g. "graph", "double", "layout", "string", "integer", "color", "size").

Returns
The name of this property's type.

Implements tlp::PropertyInterface.

Definition at line 55 of file LayoutProperty.h.

void tlp::LayoutProperty::normalize ( Graph subgraph = NULL)

Normalizes the layout, meaning dividing each nodes and edges coordinate by the maximum magnitude of the whole coordinates set

Parameters
subgraphIf not null, only normalizes the layout of that sub-graph
void tlp::LayoutProperty::perfectAspectRatio ( )

Scales the layout in order to approach an aspect ratio (width / height) of 1.0 .

void tlp::LayoutProperty::rotateX ( const double &  alpha,
Graph subgraph = NULL 
)

Rotates the layout around the X-axis according to an angle in degrees.

Parameters
alphaan angle in degrees
subgraphIf not null, only rotates the layout of that sub-graph
void tlp::LayoutProperty::rotateX ( const double &  alpha,
Iterator< node > *  itNodes,
Iterator< edge > *  itEdges 
)

Rotates the layout around the X-axis of the nodes and edges provided through iterators according to an angle in degrees.

Parameters
alphaan angle in degrees
itNodesan iterator on graph nodes
itEdgesan iterator on graph edges
Warning
The iterators are not deleted
void tlp::LayoutProperty::rotateY ( const double &  alpha,
Graph subgraph = NULL 
)

Rotates the layout around the Y-axis according to an angle in degrees.

Parameters
alphaan angle in degrees
subgraphIf not null, only rotates the layout of that sub-graph
void tlp::LayoutProperty::rotateY ( const double &  alpha,
Iterator< node > *  itNodes,
Iterator< edge > *  itEdges 
)

Rotates the layout around the Y-axis of the nodes and edges provided through iterators according to an angle in degrees.

Parameters
alphaan angle in degrees
itNodesan iterator on graph nodes
itEdgesan iterator on graph edges
Warning
The iterators are not deleted
void tlp::LayoutProperty::rotateZ ( const double &  alpha,
Graph subgraph = NULL 
)

Rotates the layout around the Z-axis according to an angle in degrees.

Parameters
alphaan angle in degrees
subgraphIf not null, only rotates the layout of that sub-graph
void tlp::LayoutProperty::rotateZ ( const double &  alpha,
Iterator< node > *  itNodes,
Iterator< edge > *  itEdges 
)

Rotates the layout around the Z-axis of the nodes and edges provided through iterators according to an angle in degrees.

Parameters
alphaan angle in degrees
itNodesan iterator on graph nodes
itEdgesan iterator on graph edges
Warning
The iterators are not deleted
void tlp::LayoutProperty::scale ( const Vec3f &  scaleFactors,
Graph subgraph = NULL 
)

Scales the current layout according to a vector of scale factors (sx, sy, sz).

Parameters
scaleFactorsa vector of scale factors
subgraphIf not null, only scales the layout of that sub-graph
void tlp::LayoutProperty::scale ( const Vec3f &  scaleFactors,
Iterator< node > *  itNodes,
Iterator< edge > *  itEdges 
)

Scales the layout of a set of nodes and edges provided through iterators according to a vector of scale factors (sx, sy, sz).

Parameters
scaleFactorsa vector of scale factors
itNodesan iterator on graph nodes
itEdgesan iterator on graph edges
Warning
The iterators are not deleted
void tlp::LayoutProperty::translate ( const Vec3f &  move,
Graph subgraph = NULL 
)

Translates the current layout according to a movement vector

Parameters
movea movement vector
subgraphIf not null, only translates the layout of that sub-graph
void tlp::LayoutProperty::translate ( const Vec3f &  move,
Iterator< node > *  itNodes,
Iterator< edge > *  itEdges 
)

Translates the layout of a set of nodes and edges provided through iterators according to a movement vector

Parameters
movea movement vector
itNodesan iterator on graph nodes
itEdgesan iterator on graph edges
Warning
The iterators are not deleted