Tulip  4.6.0
Better Visualization Through Research
tlp::LayoutProperty Class Reference

#include <LayoutProperty.h>

+ Inheritance diagram for tlp::LayoutProperty:
+ Collaboration diagram for tlp::LayoutProperty:

List of all members.

Public Member Functions

 LayoutProperty (Graph *graph, const std::string &name="")
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)
double edgeLength (const edge e) const
Coord getMax (Graph *subgraph=NULL)
Coord getMin (Graph *subgraph=NULL)
const 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 Attributes

unsigned int nbBendedEdges

Static Public Attributes

static const std::string propertyTypename

Protected Member Functions

virtual void clone_handler (AbstractProperty< tlp::PointType, tlp::LineType > &)

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, and graph_display/graph_display.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
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
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
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

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
virtual void tlp::LayoutProperty::setNodeValue ( const node  ,
const Coord &  v 
) [virtual]

Returns the number of crossings in the layout

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
 All Classes Files Functions Variables Enumerations Enumerator Properties