1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
|
/*
* $Revision: 3523 $
*
* last checkin:
* $Author: gutwenger $
* $Date: 2013-05-31 15:03:27 +0200 (Fri, 31 May 2013) $
***************************************************************/
/** \file
* \brief Declares class LayoutStandards which specifies default /
* standard values used in graph layouts.
*
* \author Carsten Gutwenger
*
* \par License:
* This file is part of the Open Graph Drawing Framework (OGDF).
*
* \par
* Copyright (C)<br>
* See README.txt in the root directory of the OGDF installation for details.
*
* \par
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* Version 2 or 3 as published by the Free Software Foundation;
* see the file LICENSE.txt included in the packaging of this file
* for details.
*
* \par
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* \par
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
* \see http://www.gnu.org/copyleft/gpl.html
***************************************************************/
#ifdef _MSC_VER
#pragma once
#endif
#ifndef OGDF_LAYOUT_STANDARDS_H
#define OGDF_LAYOUT_STANDARDS_H
#include <ogdf/basic/graphics.h>
namespace ogdf {
//! Standard values for graphical attributes and layouts.
class LayoutStandards {
static double s_defNodeWidth; //!< the default width of a node (must be positive).
static double s_defNodeHeight; //!< the default height of a node (must be positive).
static Shape s_defNodeShape; //!< the default shape of a node.
static Stroke s_defNodeStroke; //!< the default stroke of a node.
static Fill s_defNodeFill; //!< the default fill of a node.
static Stroke s_defEdgeStroke; //!< the default stroke of an edge.
static EdgeArrow s_defEdgeArrow; //!< the default arrow type of an edge .
static Stroke s_defClusterStroke; //!< the default cluster stroke.
static Fill s_defClusterFill; //!< the default cluster fill.
static double s_defNodeSeparation; //!< the default node separation (for layout algorithms) (must be positive).
static double s_defCCSeparation; //!< the default separation between connected components (for layout algorithms) (must be positive).
public:
/**
* @name Global default node attributes
* These attribute values are used by GraphAttributes as default graphical representation of nodes.
*/
//@{
//! Returns the global default width for nodes.
static double defaultNodeWidth() { return s_defNodeWidth; }
//! Sets the global default width for nodes to \a w.
/**
* \param w must be a positive value and is set as new default node width.
*/
static void setDefaultNodeWidth(double w) {
if(w > 0.0)
s_defNodeWidth = w;
}
//! Returns the global default height for nodes.
static double defaultNodeHeight() { return s_defNodeHeight; }
//! Sets the global default height for nodes to \a h.
/**
* \param h must be a positive value and is set as new default node height.
*/
static void setDefaultNodeHeight(double h) {
if(h > 0.0)
s_defNodeHeight = h;
}
//! Returns the global default shape for nodes.
static Shape defaultNodeShape() { return s_defNodeShape; }
//! Sets the global default shape for nodes to \a s.
static void setDefaultNodeShape(Shape s) { s_defNodeShape = s; }
//! Returns the global default stroke for nodes.
static Stroke defaultNodeStroke() { return s_defNodeStroke; }
//! Returns the global default stroke color for nodes.
static Color defaultNodeStrokeColor() { return s_defNodeStroke.m_color; }
//! Returns the global default stroke width for nodes.
static float defaultNodeStrokeWidth() { return s_defNodeStroke.m_width; }
//! Sets the global default stroke for nodes to \a stroke.
static void setDefaultNodeStroke(Stroke stroke) { s_defNodeStroke = stroke; }
//! Returns the global default fill for nodes.
static Fill defaultNodeFill() { return s_defNodeFill; }
//! Returns the global default fill color for nodes.
static Color defaultNodeFillColor() { return s_defNodeFill.m_color; }
//! Sets the global default fill for nodes to \a fill.
static void setDefaultNodeFill(Fill fill) { s_defNodeFill = fill; }
//@}
/**
* @name Global default edge attributes
* These attribute values are used by GraphAttributes as default graphical representation of edges.
*/
//@{
//! Returns the global default stroke for edges.
static Stroke defaultEdgeStroke() { return s_defEdgeStroke; }
//! Returns the global default stroke color for edges.
static Color defaultEdgeStrokeColor() { return s_defEdgeStroke.m_color; }
//! Returns the global default stroke width for edges.
static float defaultEdgeStrokeWidth() { return s_defEdgeStroke.m_width; }
//! Sets the global default stroke for edges to \a stroke.
static void setDefaultEdgeStroke(Stroke stroke) { s_defEdgeStroke = stroke; }
//! Returns the global default arrow type for edges.
static EdgeArrow defaultEdgeArrow() { return s_defEdgeArrow; }
//! Sets the global default arrow type for edges to \a arrow.
static void setDefaultEdgeArrow(EdgeArrow arrow) { s_defEdgeArrow = arrow; }
//@}
/**
* @name Global default cluster attributes
* These attribute values are used by ClusterGraphAttributes as default graphical representation of clusters.
*/
//@{
//! Returns the global default stroke for clusters.
static Stroke defaultClusterStroke() { return s_defClusterStroke; }
//! Returns the global default stroke color for clusters.
static Color defaultClusterStrokeColor() { return s_defClusterStroke.m_color; }
//! Returns the global default stroke width for clusters.
static float defaultClusterStrokeWidth() { return s_defClusterStroke.m_width; }
//! Sets the global default stroke for cluster to \a stroke.
static void setDefaultClusterStroke(Stroke stroke) { s_defClusterStroke = stroke; }
//! Returns the global default fill for clusters.
static Fill defaultClusterFill() { return s_defClusterFill; }
//! Returns the global default fill color for clusters.
static Color defaultClusterFillColor() { return s_defClusterFill.m_color; }
//! Sets the global default fill for clusters to \a fill.
static void setDefaultClusterFill(Fill fill) { s_defClusterFill = fill; }
//@}
/**
* @name Global default separation parameters
* These values \e can be used by layout algorithms as useful settings for separation parameters.
*/
//@{
//! Returns the global default node separation.
static double defaultNodeSeparation() { return s_defNodeSeparation; }
//! Sets the global default node separation to \a d.
/**
* \param d must be a positive value and is set as new default node separation.
*/
static void setDefaultNodeSeparation(double d) {
if(d > 0.0)
s_defNodeSeparation = d;
}
//! Returns the global default separation between connected components.
static double defaultCCSeparation() { return s_defCCSeparation; }
//! Sets the global default separation between connected components to \ d.
/**
* \param d must be a positive value and is set as new default separation between connected components.
*/
static void setDefaultCCSeparation(double d) {
if(d > 0.0)
s_defCCSeparation = d;
}
//@}
};
} // end namespace ogdf
#endif
|