Open
Graph Drawing
Framework

 v.2007.11
 

ogdf::GraphAttributes Class Reference

Stores additional attributes of a graph (like layout information). More...

#include <GraphAttributes.h>

Inheritance diagram for ogdf::GraphAttributes:

ogdf::ClusterGraphAttributes ogdf::UMLGraph

List of all members.

Public Types

enum  EdgeArrow {
  none, last, first, both,
  undefined
}
 Types for edge arrows. More...
enum  EdgeStyle {
  esNoPen = 0, esSolid = 1, esDash = 2, esDot = 3,
  esDashdot = 4, esDashdotdot = 5
}
 Types for line styles. More...
enum  BrushPattern {
  bpNone = 0, bpSolid = 1, bpDense1 = 2, bpDense2 = 3,
  bpDense3 = 4, bpDense4 = 5, bpDense5 = 6, bpDense6 = 7,
  bpDense7 = 8, bpHorizontal = 9, bpVertical = 10, bpCross = 11,
  BackwardDiagonal = 12, ForwardDiagonal = 13, DiagonalCross = 14
}
 Types for object brush patterns. More...
enum  {
  nodeGraphics = 0x00001, edgeGraphics = 0x00002, nodeLevel = 0x00004, edgeIntWeight = 0x00008,
  edgeDoubleWeight = 0x00010, edgeLabel = 0x00020, nodeLabel = 0x00040, edgeType = 0x00080,
  nodeType = 0x00100, nodeColor = 0x00200, nodeId = 0x00400, edgeArrow = 0x00800,
  edgeColor = 0x01000, edgeStyle = 0x02000, nodeStyle = 0x04000, nodeTemplate = 0x08000,
  edgeSubGraph = 0x10000
}
 Bits for specifying attributes. More...
enum  { oval = 0x8001, rectangle = 0x8002 }
 Bits for specifying node shapes. More...

Public Member Functions

 GraphAttributes ()
 Constructs graph attributes for no associated graph (default constructor).
 GraphAttributes (const Graph &G, long initAttributes=nodeGraphics|edgeGraphics)
 Constructs graph attributes associated with the graph G.
virtual ~GraphAttributes ()
virtual void init (const Graph &G, long initAttr)
 Initializes the graph attributes for graph G.
long attributes () const
 Returns currently accessible attributes.
void initAttributes (long attr)
 Initializes attributes in attr for usage.
void destroyAttributes (long attr)
 Destroys attributes in attr.
const GraphconstGraph () const
 Returns a reference to the associated graph.
const StringtemplateNode (node v) const
 Returns the template name of node v.
StringtemplateNode (node v)
 Returns the template name of node v.
const double & x (node v) const
 Returns the x-coordinate of node v.
double & x (node v)
 Returns the x-coordinate of node v.
const double & y (node v) const
 Returns the y-coordinate of node v.
double & y (node v)
 Returns the y-coordinate of node v.
const NodeArray< double > & width () const
 Returns a reference to the NodeArray m_width.
NodeArray< double > & width ()
 Returns a refeence to the NodeArray m_width.
const double & width (node v) const
 Returns the width of the bounding box of node v.
double & width (node v)
 Returns the width of the bounding box of node v.
const NodeArray< double > & height () const
 Returns a reference to the NodeArray m_height.
NodeArray< double > & height ()
 Returns a refeence to the NodeArray m_height.
const double & height (node v) const
 Returns the height of the bounding box of node v.
double & height (node v)
 Returns the height of the bounding box of node v.
const int & level (node v) const
 Returns the level of node v.
int & level (node v)
 Returns the level of node v.
const BrushPatternnodePattern (node v) const
 Returns the brush pattern of node v.
BrushPatternnodePattern (node v)
 Returns the brush pattern of node v.
const EdgeStylestyleNode (node v) const
 Returns the line style of node \ v.
EdgeStylestyleNode (node v)
 Returns the line style of node \ v.
const double & lineWidthNode (node v) const
 Returns the line width of node v.
double & lineWidthNode (node v)
 Returns the line width of node v.
const StringnodeLine (node v) const
 Returns the line color of node v.
StringnodeLine (node v)
 Returns the line color of node v.
const DPolylinebends (edge e) const
 Returns the list of bend points of edge e.
DPolylinebends (edge e)
 Returns the list of bend points of edge e.
const int & intWeight (edge e) const
 Returns the (integer) weight of edge e.
int & intWeight (edge e)
 Returns the (integer) weight of edge e.
const double & doubleWeight (edge e) const
 Returns the (real number) weight of edge e.
double & doubleWeight (edge e)
 Returns the (real number) weight of edge e.
const double & edgeWidth (edge e) const
 Returns the line width of edge e.
double & edgeWidth (edge e)
 Returns the line width of edge e.
const StringcolorNode (node v) const
 Returns the color of node v.
StringcolorNode (node v)
 Returns the color of node v.
int shapeNode (node v) const
 Returns the shape type of node v.
int & shapeNode (node v)
 Returns the shape type of node v.
const StringlabelNode (node v) const
 Returns the label of node \ v.
StringlabelNode (node v)
 Returns the label of node \ v.
const StringlabelEdge (edge e) const
 Returns the label of edge e.
StringlabelEdge (edge e)
 Returns the label of edge e.
Graph::EdgeType type (edge e) const
 Returns the type of edge e.
Graph::EdgeTypetype (edge e)
 Returns the type of edge e.
Graph::NodeType type (node v) const
 Returns the type of node v.
Graph::NodeTypetype (node v)
 Returns the type of node v.
const int & idNode (node v) const
 Returns the user ID of node v.
int & idNode (node v)
 Returns the user ID of node v.
const EdgeArrowarrowEdge (edge e) const
 Returns the arrow type of edge e.
EdgeArrowarrowEdge (edge e)
 Returns the arrow type of edge e.
const EdgeStylestyleEdge (edge e) const
 Returns the line style of an edge e.
EdgeStylestyleEdge (edge e)
 Returns the line style of an edge e.
const StringcolorEdge (edge e) const
 Returns the color of node v.
StringcolorEdge (edge e)
 Returns the color of node v.
const unsigned int & subGraphBits (edge e) const
 Returns the edgesubgraph value of an edge e.
unsigned int & subGraphBits (edge e)
 Returns the edgesubgraph value of an edge e.
bool inSubGraph (edge e, int n) const
 Checks whether edge e belongs to basic graph n.
void addSubGraph (edge e, int n)
 Addes edge e to basic graph n.
void removeSubGraph (edge e, int n)
 Removes edge e from basic graph n.
const DRect boundingBox () const
 Returns the bounding box of the graph.
bool isAssociationClass (node v) const
void addNodeCenter2Bends (int mode=1)
void clearAllBends ()
int hierarchyList (List< List< node > * > &list) const
 Returns a list of all inheritance hierarchies in the graph.
int hierarchyList (List< List< edge > * > &list) const
 Returns a list of all inheritance hierarchies in the graph.
void setAllWidth (double w)
 Sets the width of all nodes to w.
void setAllHeight (double h)
 Sets the height of all nodes to h.
bool readGML (Graph &G, const String &fileName)
 Reads the graph from a GML file fileName.
bool readGML (Graph &G, istream &is)
 Reads the graph from a GML input stream is.
void writeGML (const String &fileName) const
 Writes the graph with its attributes in GML format to file fileName.
void writeGML (ostream &os) const
 Writes the graph with its attributes in GML format to output stream os.
bool readXML (Graph &G, const String &fileName)
 Reads the graph and attributes from the XML file fileName.
bool readXML (Graph &G, istream &is)
 Reads the graph and attributes from the XML input stream is.
void writeXML (const String &fileName, const char *delimiter="", const char *offset="") const
 Reads the graph from the XML input stream is.
virtual void writeXML (ostream &os, const char *delimiter="", const char *offset="") const
 Reads the graph from the XML input stream is.
bool readRudy (Graph &G, const String &fileName)
 Reads a graph in Rudy format from file fileName.
bool readRudy (Graph &G, istream &is)
 Reads a graph in Rudy format from input stream is.
void writeRudy (const String &fileName) const
 Writes the graph in Rudy format to file fileName.
void writeRudy (ostream &os) const
 Writes the graph in Rudy format to output stream os.
void removeUnnecessaryBendsHV ()
 Removes unnecessary bend points in orthogonal segements.

Static Public Member Functions

static EdgeStyle intToStyle (int i)
 Converts integer i to edge style.
static BrushPattern intToPattern (int i)
 Converts integer i to brush pattern.

Protected Member Functions

void writeLongString (ostream &os, const String &str) const

Protected Attributes

const Graphm_pGraph
 associated graph
NodeArray< double > m_x
 x-coordinate of a node
NodeArray< double > m_y
 y-coordinate pf a node
NodeArray< double > m_width
 width of a node's bounding box
NodeArray< double > m_height
 height of a nodes's bounding box
NodeArray< Stringm_nodeLabel
 label of a node
NodeArray< Stringm_nodeColor
 color of a node
NodeArray< Stringm_nodeLine
 line color of a node
NodeArray< int > m_nodeShape
 shape of a node
NodeArray< double > m_nodeLineWidth
 line width of a node
NodeArray< BrushPatternm_nodePattern
 brush pattern of a node
NodeArray< EdgeStylem_nodeStyle
 line style of a node
NodeArray< Stringm_nodeTemplate
 name of template of a node
NodeArray< int > m_nodeId
 user ID of a node
NodeArray< int > m_level
 level of a node
NodeArray< Graph::NodeTypem_vType
EdgeArray< DPolylinem_bends
 list of bend points of an edge
EdgeArray< Stringm_edgeLabel
 label of an edge
EdgeArray< EdgeArrowm_edgeArrow
 arrow type of an edge
EdgeArray< EdgeStylem_edgeStyle
 line style of an edge
EdgeArray< Stringm_edgeColor
 line color of an edge
EdgeArray< double > m_edgeWidth
 line width of an edge
EdgeArray< Graph::EdgeTypem_eType
 type of an edge (association or generalization)
EdgeArray< int > m_intWeight
 (integer) weight of an edge
EdgeArray< double > m_doubleWeight
 (real number) weight of an edge
EdgeArray< unsigned int > m_subGraph
 is element of subgraphs given by bitvector
long m_attributes
 bit vector of currently used attributes


Detailed Description

Stores additional attributes of a graph (like layout information).

It is frequently necessary to associate additional attributes with a graph. The class GraphAttributes provides various such attributes and is the central place were such attributes are stored.

Attributes are simply stored in node or edge arrays; for memory consumption reasons, only a subset of these arrays is in fact initialized for the graph; non-initialized arrays require only a few bytes of extra memory.

Which arrays are initialized is specified by a bit vector; each bit in this bit vector corresponds to one or more attributes. E.g., nodeGraphics corresponds to the attributes m_x, m_y, m_width, and m_height; whereas edgeDoubleWeight only corresponds to the attribute m_doubleWeight.

Attributes can be initialized by the constructor GraphAttributes(const Graph &,long) or the function initAttributes(); attributes can also be deinitialized by calling destroyAttributes().

Definition at line 92 of file GraphAttributes.h.


Member Enumeration Documentation

enum ogdf::GraphAttributes::EdgeArrow

Types for edge arrows.

Enumerator:
none  no edge arrows
last  edge arrow at target node of the edge
first  edge arrow at source node of the edge
both  edge arrow at target and source node of the edge
undefined 

Definition at line 96 of file GraphAttributes.h.

enum ogdf::GraphAttributes::EdgeStyle

Types for line styles.

The line styles are preliminary the same as in QT.

Enumerator:
esNoPen  no line
esSolid  solid line
esDash  dashed line
esDot  dotted line
esDashdot  line style "dash dot dash dot ..."
esDashdotdot  line style "dash dot dot dash dot dot ..."

Definition at line 108 of file GraphAttributes.h.

enum ogdf::GraphAttributes::BrushPattern

Types for object brush patterns.

The brush patterns are currently the same as the GDE project.

Enumerator:
bpNone 
bpSolid 
bpDense1 
bpDense2 
bpDense3 
bpDense4 
bpDense5 
bpDense6 
bpDense7 
bpHorizontal 
bpVertical 
bpCross 
BackwardDiagonal 
ForwardDiagonal 
DiagonalCross 

Definition at line 137 of file GraphAttributes.h.

anonymous enum

Bits for specifying attributes.

Enumerator:
nodeGraphics  node attributes m_x, m_y, m_width, m_height
edgeGraphics  edge attribute m_bends
nodeLevel  node attribute m_level
edgeIntWeight  edge attribute m_intWeight
edgeDoubleWeight  edge attribute m_doubleWeight
edgeLabel  edge attribute m_edgeLabel
nodeLabel  node attribute m_nodeLabel
edgeType  edge attribute m_eType
nodeType  node attribute m_vType
nodeColor  node attribute m_nodeColor
nodeId  node attribute m_nodeId
edgeArrow  edge attribute m_edgeArrow
edgeColor  edge attribute m_edgeColor
edgeStyle  edge attribute m_edgeStyle
nodeStyle  node attributes m_nodePattern, m_nodeStyle, m_nodeLineWidth
nodeTemplate  node attribute m_nodeTmplate
edgeSubGraph  edge attribute m_subGraph

Definition at line 225 of file GraphAttributes.h.

anonymous enum

Bits for specifying node shapes.

Enumerator:
oval 
rectangle 

Definition at line 246 of file GraphAttributes.h.


Constructor & Destructor Documentation

ogdf::GraphAttributes::GraphAttributes (  ) 

Constructs graph attributes for no associated graph (default constructor).

The associated graph can be set later with the init() function.

ogdf::GraphAttributes::GraphAttributes ( const Graph G,
long  initAttributes = nodeGraphics|edgeGraphics 
)

Constructs graph attributes associated with the graph G.

Parameters:
G is the associated graph.
initAttributes specifies the set of attributes that can be accessed.

virtual ogdf::GraphAttributes::~GraphAttributes (  )  [inline, virtual]

Definition at line 265 of file GraphAttributes.h.


Member Function Documentation

static EdgeStyle ogdf::GraphAttributes::intToStyle ( int  i  )  [inline, static]

Converts integer i to edge style.

Definition at line 118 of file GraphAttributes.h.

static BrushPattern ogdf::GraphAttributes::intToPattern ( int  i  )  [inline, static]

Converts integer i to brush pattern.

Definition at line 156 of file GraphAttributes.h.

void ogdf::GraphAttributes::writeLongString ( ostream &  os,
const String str 
) const [protected]

Writes string str into a GML file such that line length limits are respected and characters '\', '"' are correctly escaped.

virtual void ogdf::GraphAttributes::init ( const Graph G,
long  initAttr 
) [virtual]

Initializes the graph attributes for graph G.

Parameters:
G is the new associated graph.
initAttr specifies the set of attributes that can be accessed.
Warning:
All attributes that were allocated before are destroyed by this function! If you wish to extend the set of allocated attributes, use initAttributes().

long ogdf::GraphAttributes::attributes (  )  const [inline]

Returns currently accessible attributes.

Definition at line 278 of file GraphAttributes.h.

void ogdf::GraphAttributes::initAttributes ( long  attr  ) 

Initializes attributes in attr for usage.

void ogdf::GraphAttributes::destroyAttributes ( long  attr  ) 

Destroys attributes in attr.

const Graph& ogdf::GraphAttributes::constGraph (  )  const [inline]

Returns a reference to the associated graph.

Definition at line 287 of file GraphAttributes.h.

const String& ogdf::GraphAttributes::templateNode ( node  v  )  const [inline]

Returns the template name of node v.

Definition at line 290 of file GraphAttributes.h.

String& ogdf::GraphAttributes::templateNode ( node  v  )  [inline]

Returns the template name of node v.

Definition at line 292 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::x ( node  v  )  const [inline]

Returns the x-coordinate of node v.

Definition at line 295 of file GraphAttributes.h.

double& ogdf::GraphAttributes::x ( node  v  )  [inline]

Returns the x-coordinate of node v.

Definition at line 297 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::y ( node  v  )  const [inline]

Returns the y-coordinate of node v.

Definition at line 300 of file GraphAttributes.h.

double& ogdf::GraphAttributes::y ( node  v  )  [inline]

Returns the y-coordinate of node v.

Definition at line 302 of file GraphAttributes.h.

const NodeArray<double>& ogdf::GraphAttributes::width (  )  const [inline]

Returns a reference to the NodeArray m_width.

Definition at line 306 of file GraphAttributes.h.

NodeArray<double>& ogdf::GraphAttributes::width (  )  [inline]

Returns a refeence to the NodeArray m_width.

Definition at line 308 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::width ( node  v  )  const [inline]

Returns the width of the bounding box of node v.

Definition at line 311 of file GraphAttributes.h.

double& ogdf::GraphAttributes::width ( node  v  )  [inline]

Returns the width of the bounding box of node v.

Definition at line 313 of file GraphAttributes.h.

const NodeArray<double>& ogdf::GraphAttributes::height (  )  const [inline]

Returns a reference to the NodeArray m_height.

Definition at line 316 of file GraphAttributes.h.

NodeArray<double>& ogdf::GraphAttributes::height (  )  [inline]

Returns a refeence to the NodeArray m_height.

Definition at line 318 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::height ( node  v  )  const [inline]

Returns the height of the bounding box of node v.

Definition at line 321 of file GraphAttributes.h.

double& ogdf::GraphAttributes::height ( node  v  )  [inline]

Returns the height of the bounding box of node v.

Definition at line 323 of file GraphAttributes.h.

const int& ogdf::GraphAttributes::level ( node  v  )  const [inline]

Returns the level of node v.

Definition at line 326 of file GraphAttributes.h.

int& ogdf::GraphAttributes::level ( node  v  )  [inline]

Returns the level of node v.

Definition at line 328 of file GraphAttributes.h.

const BrushPattern& ogdf::GraphAttributes::nodePattern ( node  v  )  const [inline]

Returns the brush pattern of node v.

Definition at line 331 of file GraphAttributes.h.

BrushPattern& ogdf::GraphAttributes::nodePattern ( node  v  )  [inline]

Returns the brush pattern of node v.

Definition at line 333 of file GraphAttributes.h.

const EdgeStyle& ogdf::GraphAttributes::styleNode ( node  v  )  const [inline]

Returns the line style of node \ v.

Definition at line 336 of file GraphAttributes.h.

EdgeStyle& ogdf::GraphAttributes::styleNode ( node  v  )  [inline]

Returns the line style of node \ v.

Definition at line 338 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::lineWidthNode ( node  v  )  const [inline]

Returns the line width of node v.

Definition at line 341 of file GraphAttributes.h.

double& ogdf::GraphAttributes::lineWidthNode ( node  v  )  [inline]

Returns the line width of node v.

Definition at line 343 of file GraphAttributes.h.

const String& ogdf::GraphAttributes::nodeLine ( node  v  )  const [inline]

Returns the line color of node v.

Definition at line 346 of file GraphAttributes.h.

String& ogdf::GraphAttributes::nodeLine ( node  v  )  [inline]

Returns the line color of node v.

Definition at line 348 of file GraphAttributes.h.

const DPolyline& ogdf::GraphAttributes::bends ( edge  e  )  const [inline]

Returns the list of bend points of edge e.

Definition at line 351 of file GraphAttributes.h.

DPolyline& ogdf::GraphAttributes::bends ( edge  e  )  [inline]

Returns the list of bend points of edge e.

Definition at line 353 of file GraphAttributes.h.

const int& ogdf::GraphAttributes::intWeight ( edge  e  )  const [inline]

Returns the (integer) weight of edge e.

Definition at line 356 of file GraphAttributes.h.

int& ogdf::GraphAttributes::intWeight ( edge  e  )  [inline]

Returns the (integer) weight of edge e.

Definition at line 358 of file GraphAttributes.h.

const double& ogdf::GraphAttributes::doubleWeight ( edge  e  )  const [inline]

Returns the (real number) weight of edge e.

Definition at line 361 of file GraphAttributes.h.

double& ogdf::GraphAttributes::doubleWeight ( edge  e  )  [inline]

Returns the (real number) weight of edge e.

Definiti