Tulip
5.6.0
Large graphs analysis and drawing
|
#include <LayoutProperty.h>
Public Member Functions | |
LayoutProperty (Graph *graph, const std::string &name="") | |
std::vector< double > | angularResolutions (const node n, const Graph *subgraph=nullptr) const |
double | averageAngularResolution (const Graph *subgraph=nullptr) const |
double | averageAngularResolution (const node n, const Graph *subgraph=nullptr) const |
double | averageEdgeLength (const Graph *subgraph=nullptr) const |
void | center (const Graph *subgraph=nullptr) |
void | center (const Vec3f &newCenter, const Graph *subgraph=nullptr) |
PropertyInterface * | clonePrototype (Graph *, const std::string &) const override |
void | computeEmbedding (const node n, Graph *subgraph=nullptr) |
void | computeEmbedding (Graph *subgraph=nullptr) |
double | edgeLength (const edge e) const |
Coord | getMax (const Graph *subgraph=nullptr) |
Coord | getMin (const Graph *subgraph=nullptr) |
const std::string & | getTypename () const override |
void | normalize (const Graph *subgraph=nullptr) |
void | perfectAspectRatio (const Graph *subgraph=nullptr) |
void | rotateX (const double &alpha, const Graph *subgraph=nullptr) |
void | rotateX (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges) |
void | rotateY (const double &alpha, const Graph *subgraph=nullptr) |
void | rotateY (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges) |
void | rotateZ (const double &alpha, const Graph *subgraph=nullptr) |
void | rotateZ (const double &alpha, Iterator< node > *itNodes, Iterator< edge > *itEdges) |
void | scale (const Vec3f &scaleFactors, const Graph *subgraph=nullptr) |
void | scale (const Vec3f &scaleFactors, Iterator< node > *itNodes, Iterator< edge > *itEdges) |
void | setAllEdgeValue (tlp::StoredType< tlp::LineType::RealType >::ReturnedConstValue v) override |
void | setAllNodeValue (tlp::StoredType< tlp::PointType::RealType >::ReturnedConstValue v) override |
void | setEdgeValue (const edge, tlp::StoredType< tlp::LineType::RealType >::ReturnedConstValue v) override |
void | setNodeValue (const node, tlp::StoredType< tlp::PointType::RealType >::ReturnedConstValue v) override |
void | setValueToGraphEdges (tlp::StoredType< tlp::LineType::RealType >::ReturnedConstValue v, const Graph *graph) override |
void | setValueToGraphNodes (tlp::StoredType< tlp::PointType::RealType >::ReturnedConstValue v, const Graph *graph) override |
void | translate (const Vec3f &move, const Graph *subgraph=nullptr) |
void | translate (const Vec3f &move, Iterator< node > *itNodes, Iterator< edge > *itEdges) |
Public Member Functions inherited from tlp::MinMaxProperty< nodeType, edgeType, propType > | |
MinMaxProperty (tlp::Graph *graph, const std::string &name, NODE_VALUE NodeMin, NODE_VALUE NodeMax, EDGE_VALUE EdgeMin, EDGE_VALUE EdgeMax) | |
CONST_EDGE_VALUE | getEdgeMax (const Graph *graph=nullptr) |
CONST_EDGE_VALUE | getEdgeMin (const Graph *graph=nullptr) |
CONST_NODE_VALUE | getNodeMax (const Graph *graph=nullptr) |
CONST_NODE_VALUE | getNodeMin (const Graph *graph=nullptr) |
void | treatEvent (const tlp::Event &ev) override |
void | updateAllEdgesValues (CONST_EDGE_VALUE newValue) |
void | updateAllNodesValues (CONST_NODE_VALUE newValue) |
void | updateEdgeValue (tlp::edge e, const tlp::LineType::RealType &newValue) |
void | updateEdgeValue (tlp::edge e, CONST_EDGE_VALUE newValue) |
void | updateNodeValue (tlp::node n, CONST_NODE_VALUE newValue) |
Public Member Functions inherited from tlp::AbstractProperty< nodeType, edgeType, PropertyInterface > | |
AbstractProperty (Graph *, const std::string &n="") | |
int | compare (const edge e1, const edge e2) const override |
int | compare (const node n1, const node n2) const override |
void | computeMetaValue (edge e, tlp::Iterator< edge > *itE, Graph *mg) override |
void | computeMetaValue (node n, Graph *sg, Graph *mg) override |
bool | copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false) override |
bool | copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false) override |
void | copy (PropertyInterface *property) override |
unsigned int | edgeValueSize () const override |
void | erase (const edge e) override |
void | erase (const node n) override |
DataMem * | getEdgeDataMemValue (const edge e) const override |
DataMem * | getEdgeDefaultDataMemValue () const override |
std::string | getEdgeDefaultStringValue () const override |
edgeType ::RealType | getEdgeDefaultValue () const |
virtual tlp::Iterator< edge > * | getEdgesEqualTo (typename tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue v, const Graph *g=nullptr) const |
std::string | getEdgeStringValue (const edge e) const override |
tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue | getEdgeValue (const edge e) const |
DataMem * | getNodeDataMemValue (const node n) const override |
DataMem * | getNodeDefaultDataMemValue () const override |
std::string | getNodeDefaultStringValue () const override |
nodeType ::RealType | getNodeDefaultValue () const |
virtual tlp::Iterator< node > * | getNodesEqualTo (typename tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue v, const Graph *g=nullptr) const |
std::string | getNodeStringValue (const node n) const override |
tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue | getNodeValue (const node n) const |
DataMem * | getNonDefaultDataMemValue (const edge e) const override |
DataMem * | getNonDefaultDataMemValue (const node n) const override |
tlp::Iterator< edge > * | getNonDefaultValuatedEdges (const Graph *g=nullptr) const override |
tlp::Iterator< node > * | getNonDefaultValuatedNodes (const Graph *g=nullptr) const override |
bool | hasNonDefaultValuatedEdges (const Graph *g=nullptr) const override |
bool | hasNonDefaultValuatedNodes (const Graph *g=nullptr) const override |
unsigned int | nodeValueSize () const override |
unsigned int | numberOfNonDefaultValuatedEdges (const Graph *=nullptr) const override |
unsigned int | numberOfNonDefaultValuatedNodes (const Graph *g=nullptr) const override |
virtual AbstractProperty< nodeType, edgeType, PropertyInterface > & | operator= (AbstractProperty< nodeType, edgeType, PropertyInterface > &prop) |
bool | readEdgeDefaultValue (std::istream &) override |
bool | readEdgeValue (std::istream &, edge) override |
bool | readNodeDefaultValue (std::istream &) override |
bool | readNodeValue (std::istream &, node) override |
void | setAllEdgeDataMemValue (const DataMem *v) override |
bool | setAllEdgeStringValue (const std::string &inV) override |
virtual void | setAllEdgeValue (typename tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue v) |
void | setAllNodeDataMemValue (const DataMem *v) override |
bool | setAllNodeStringValue (const std::string &inV) override |
virtual void | setAllNodeValue (typename tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue v) |
void | setEdgeDataMemValue (const edge e, const DataMem *v) override |
bool | setEdgeDefaultStringValue (const std::string &inV) override |
virtual void | setEdgeDefaultValue (typename tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue v) |
bool | setEdgeStringValue (const edge inE, const std::string &inV) override |
virtual void | setEdgeValue (const edge e, typename tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue v) |
void | setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc) override |
void | setNodeDataMemValue (const node n, const DataMem *v) override |
bool | setNodeDefaultStringValue (const std::string &inV) override |
virtual void | setNodeDefaultValue (typename tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue v) |
bool | setNodeStringValue (const node inN, const std::string &inV) override |
virtual void | setNodeValue (const node n, typename tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue v) |
bool | setStringValueToGraphEdges (const std::string &inV, const Graph *graph) override |
bool | setStringValueToGraphNodes (const std::string &inV, const Graph *graph) override |
virtual void | setValueToGraphEdges (typename tlp::StoredType< typename edgeType ::RealType >::ReturnedConstValue v, const Graph *graph) |
virtual void | setValueToGraphNodes (typename tlp::StoredType< typename nodeType ::RealType >::ReturnedConstValue v, const Graph *graph) |
void | writeEdgeDefaultValue (std::ostream &) const override |
void | writeEdgeValue (std::ostream &, edge) const override |
void | writeNodeDefaultValue (std::ostream &) const override |
void | writeNodeValue (std::ostream &, node) const override |
Public Member Functions inherited from tlp::PropertyInterface | |
virtual unsigned int | edgeValueSize () const =0 |
virtual const std::string & | getCppClassName () const =0 |
virtual DataMem * | getEdgeDefaultDataMemValue () const =0 |
virtual std::string | getEdgeDefaultStringValue () const =0 |
tlp::Graph * | getGraph () const |
MetaValueCalculator * | getMetaValueCalculator () |
const std::string & | getName () const |
virtual DataMem * | getNodeDefaultDataMemValue () const =0 |
virtual std::string | getNodeDefaultStringValue () const =0 |
virtual unsigned int | nodeValueSize () const =0 |
bool | rename (const std::string &newName) |
Public Member Functions inherited from tlp::Observable | |
void | addListener (Observable &listener) const |
void | addListener (Observable *const listener) const |
void | addObserver (Observable &observer) 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 &listener) const |
void | removeListener (Observable *const listener) const |
void | removeObserver (Observable &observer) const |
void | removeObserver (Observable *const observer) const |
Public Attributes | |
DEFINE_GET_CPP_CLASS_NAME | |
unsigned int | nbBendedEdges |
Static Public Attributes | |
static const std::string | propertyTypename |
Protected Member Functions | |
void | clone_handler (AbstractProperty< tlp::PointType, tlp::LineType > &) override |
Protected Member Functions inherited from tlp::MinMaxProperty< nodeType, edgeType, propType > | |
MINMAX_MAP (edgeType) minMaxEdge | |
MINMAX_MAP (nodeType) minMaxNode | |
const | MINMAX_PAIR (edgeType) &computeMinMaxEdge(const Graph *graph) |
const | MINMAX_PAIR (nodeType) &computeMinMaxNode(const Graph *graph) |
void | removeListenersAndClearEdgeMap () |
void | removeListenersAndClearNodeMap () |
Protected Member Functions inherited from tlp::AbstractProperty< nodeType, edgeType, PropertyInterface > | |
virtual void | clone_handler (AbstractProperty< nodeType, edgeType, PropertyInterface > &) |
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 () |
void | notifyRename (const std::string &newName) |
Protected Member Functions inherited from tlp::Observable | |
Observable (const Observable &) | |
bool | hasOnlookers () const |
void | observableDeleted () |
Observable & | operator= (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 void | disableEventNotification () |
static void | enableEventNotification () |
static tlp::node | getNode (const tlp::Observable *obs) |
static Observable * | getObject (tlp::node n) |
static const tlp::VectorGraph & | getObservableGraph () |
static unsigned int | getScheduled (tlp::node n) |
static void | holdObservers () |
static bool | isAlive (tlp::node n) |
static unsigned int | observersHoldCounter () |
static void | unholdObservers () |
Protected Attributes inherited from tlp::MinMaxProperty< nodeType, edgeType, propType > | |
EDGE_VALUE | _edgeMax |
EDGE_VALUE | _edgeMin |
NODE_VALUE | _nodeMax |
NODE_VALUE | _nodeMin |
bool | needGraphListener |
Protected Attributes inherited from tlp::AbstractProperty< nodeType, edgeType, PropertyInterface > | |
edgeType ::RealType | edgeDefaultValue |
MutableContainer< typename edgeType ::RealType > | edgeProperties |
nodeType ::RealType | nodeDefaultValue |
MutableContainer< typename nodeType ::RealType > | nodeProperties |
Protected Attributes inherited from tlp::PropertyInterface | |
Graph * | graph |
MetaValueCalculator * | metaValueCalculator |
std::string | name |
A graph property that maps a tlp::Coord value to graph nodes and std::vector<tlp::Coord> for edges.
Definition at line 50 of file LayoutProperty.h.
std::vector<double> tlp::LayoutProperty::angularResolutions | ( | const node | n, |
const Graph * | subgraph = nullptr |
||
) | const |
Returns a vector of all angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinate is omitted
n | the graph node on which to compute the angular resolution |
subgraph | If not null, only computes the average angular resolution for the node in that subgraph |
double tlp::LayoutProperty::averageAngularResolution | ( | const Graph * | subgraph = nullptr | ) | const |
Returns the average angular resolution of the layout. It is only defined for 2D drawing, meaning the third coordinate is omitted
subgraph | It not null, only computes the average angular resolution for that subgraph |
double tlp::LayoutProperty::averageAngularResolution | ( | const node | n, |
const Graph * | subgraph = nullptr |
||
) | const |
Returns the average angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinate is omitted
n | the graph node on which to compute the angular resolution |
subgraph | If not null, only computes the average angular resolution for the node in that subgraph |
double tlp::LayoutProperty::averageEdgeLength | ( | const Graph * | subgraph = nullptr | ) | const |
Returns the average edge length of the layout, the bends are taken into account
subgraph | If not null, only compute the average edge length for that subgraph |
void tlp::LayoutProperty::center | ( | const Graph * | subgraph = nullptr | ) |
Centers the layout, meaning translating it in order that the center of its bounding box is (0,0,0)
subgraph | If not null, only centers the layout of that subgraph |
void tlp::LayoutProperty::center | ( | const Vec3f & | newCenter, |
const Graph * | subgraph = nullptr |
||
) |
Centers the layout to newCenter, meaning translating it in order that the center of its bounding box is equal to newCenter
newCenter | the coordinate of the new layout center |
subgraph | If not null, only centers the layout of that subgraph |
|
overridevirtual |
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.
graph | The Graph in which to create the new property. |
name | The name of the new property. |
Implements tlp::PropertyInterface.
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.
n | the graph node on which to fix embedding |
subgraph | If not null, only fixes the embedding of the node in that subgraph |
void tlp::LayoutProperty::computeEmbedding | ( | Graph * | subgraph = nullptr | ) |
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.
subgraph | It not null, only fixes embedding in that subgraph |
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.
e | the graph edge on which to compute its length |
Coord tlp::LayoutProperty::getMax | ( | const Graph * | subgraph = nullptr | ) |
Returns the maximum coordinate of the layout, i.e. the top-right corner of the induced bounding box
subgraph | If not null, returns the maximum coordinate for a subgraph layout |
Coord tlp::LayoutProperty::getMin | ( | const Graph * | subgraph = nullptr | ) |
Returns the minimum coordinate of the layout, i.e. the bottom-left corner of the induced bounding box
subgraph | If not null, returns the minimum coordinate for a subgraph layout |
|
inlineoverridevirtual |
Gets a string describing the type of the property value (e.g. "graph", "double", "layout", "string", "integer", "color", "size").
Implements tlp::PropertyInterface.
Definition at line 57 of file LayoutProperty.h.
void tlp::LayoutProperty::normalize | ( | const Graph * | subgraph = nullptr | ) |
Normalizes the layout, meaning dividing each nodes and edges coordinate by the maximum magnitude of the whole coordinates set
subgraph | If not null, only normalizes the layout of that subgraph |
void tlp::LayoutProperty::perfectAspectRatio | ( | const Graph * | subgraph = nullptr | ) |
Scales the layout in order to approach an aspect ratio (width / height) of 1.0 .
subgraph | If not null, only scales the layout of that subgraph |
void tlp::LayoutProperty::rotateX | ( | const double & | alpha, |
const Graph * | subgraph = nullptr |
||
) |
Rotates the layout around the X-axis according to an angle in degrees.
alpha | an angle in degrees |
subgraph | If not null, only rotates the layout of that subgraph |
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.
alpha | an angle in degrees |
itNodes | an iterator on graph nodes |
itEdges | an iterator on graph edges |
void tlp::LayoutProperty::rotateY | ( | const double & | alpha, |
const Graph * | subgraph = nullptr |
||
) |
Rotates the layout around the Y-axis according to an angle in degrees.
alpha | an angle in degrees |
subgraph | If not null, only rotates the layout of that subgraph |
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.
alpha | an angle in degrees |
itNodes | an iterator on graph nodes |
itEdges | an iterator on graph edges |
void tlp::LayoutProperty::rotateZ | ( | const double & | alpha, |
const Graph * | subgraph = nullptr |
||
) |
Rotates the layout around the Z-axis according to an angle in degrees.
alpha | an angle in degrees |
subgraph | If not null, only rotates the layout of that subgraph |
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.
alpha | an angle in degrees |
itNodes | an iterator on graph nodes |
itEdges | an iterator on graph edges |
void tlp::LayoutProperty::scale | ( | const Vec3f & | scaleFactors, |
const Graph * | subgraph = nullptr |
||
) |
Scales the current layout according to a vector of scale factors (sx, sy, sz).
scaleFactors | a vector of scale factors |
subgraph | If not null, only scales the layout of that subgraph |
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).
scaleFactors | a vector of scale factors |
itNodes | an iterator on graph nodes |
itEdges | an iterator on graph edges |
|
override |
Returns the number of crossings in the layout
void tlp::LayoutProperty::translate | ( | const Vec3f & | move, |
const Graph * | subgraph = nullptr |
||
) |
Translates the current layout according to a movement vector
move | a movement vector |
subgraph | If not null, only translates the layout of that subgraph |
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
move | a movement vector |
itNodes | an iterator on graph nodes |
itEdges | an iterator on graph edges |