Class CircleLayouterAlgorithm
java.lang.Object
org.graffiti.plugin.algorithm.AbstractAlgorithm
de.ipk_gatersleben.ag_nw.graffiti.plugins.layouters.circle.CircleLayouterAlgorithm
- All Implemented Interfaces:
UndoableEdit,Algorithm
public class CircleLayouterAlgorithm extends AbstractAlgorithm
Places all nodes on a circle with a user specified radius.
- Author:
- Dirk Koschützki, Christian Klukas, Matthias Klapperstueck
- Recent revisions:
- 2.7.0
-
Constructor Summary
Constructors Constructor Description CircleLayouterAlgorithm()Creates a new CircleLayouterAlgorithm object.CircleLayouterAlgorithm(double defaultRadius)Creates a new CircleLayouterAlgorithm object. -
Method Summary
Modifier and Type Method Description voidcheck()Checks, if a graph was given and that the radius is positive.static Collection<Node>createCircleOrder(Collection<Node> nodes)Creates an ordered list of a given list of nodes for creation of circular layouts, without the disruption of the order of nodes.static doubleenergyOfNode(Node node, double newX, double newY)voidexecute()Performs the layout.StringgetCategory()Returns the category an algorithm should assigned to.static doublegetDistance(double x, double y, Node b)StringgetName()Returns the name of the algorithm.Parameter[]getParameters()Returns the parameter object for the radius.doublegetPatternNodeDistance()Set<Category>getSetCategory()Returns a set of categories to classify this algorithm .booleanisLayoutAlgorithm()A LayoutAlgorithm should return true.voidlayoutOnCircles(Collection<Node> workNodes, double defaultRadius, String operationname)voidreset()Resets the internal state of the algorithm.voidsetParameters(Parameter[] params)Sets the radius parameter to the given value.voidsetPatternNodeDistance(double patternNodeDistance)voidsetRadius(double radius)voidwithMinimizingCrossings()Methods inherited from class org.graffiti.plugin.algorithm.AbstractAlgorithm
addEdit, attach, canRedo, canUndo, die, doesUndo, getAcceleratorKeyStroke, getActionEvent, getDescription, getMenuCategory, getPresentationName, getRedoPresentationName, getUndoPresentationName, isAlwaysExecutable, isSignificant, markExecutionDone, markRedoDone, markUndoDone, mayWorkOnMultipleGraphs, redo, replaceEdit, setActionEvent, showMenuIcon, undo
-
Constructor Details
-
CircleLayouterAlgorithm
public CircleLayouterAlgorithm()Creates a new CircleLayouterAlgorithm object. -
CircleLayouterAlgorithm
public CircleLayouterAlgorithm(double defaultRadius)Creates a new CircleLayouterAlgorithm object.- Parameters:
defaultRadius- a value for the radius
-
-
Method Details
-
reset
public void reset()Description copied from interface:AlgorithmResets the internal state of the algorithm.- Specified by:
resetin interfaceAlgorithm- Overrides:
resetin classAbstractAlgorithm
-
getName
Returns the name of the algorithm.- Returns:
- the name of the algorithm
-
check
Checks, if a graph was given and that the radius is positive.- Specified by:
checkin interfaceAlgorithm- Overrides:
checkin classAbstractAlgorithm- Throws:
PreconditionException- if no graph was given during algorithm invocation or the radius is negative
-
setRadius
public void setRadius(double radius) -
execute
public void execute()Performs the layout. -
withMinimizingCrossings
public void withMinimizingCrossings() -
layoutOnCircles
public void layoutOnCircles(Collection<Node> workNodes, double defaultRadius, String operationname) -
createCircleOrder
Creates an ordered list of a given list of nodes for creation of circular layouts, without the disruption of the order of nodes. The original order of nodes will be based on the center point (mean point of positions) of the nodes.- Parameters:
nodes-- Returns:
-
energyOfNode
-
getDistance
-
getParameters
Returns the parameter object for the radius.- Specified by:
getParametersin interfaceAlgorithm- Overrides:
getParametersin classAbstractAlgorithm- Returns:
- the parameter array
-
setParameters
Sets the radius parameter to the given value.- Specified by:
setParametersin interfaceAlgorithm- Overrides:
setParametersin classAbstractAlgorithm- Parameters:
params- An array with exact one DoubleParameter.
-
getCategory
Description copied from interface:AlgorithmReturns the category an algorithm should assigned to. Return NULL if the algorithm should be sorted directly in the plugin menu.- Specified by:
getCategoryin interfaceAlgorithm- Overrides:
getCategoryin classAbstractAlgorithm- Returns:
- The category an algorithm should assigned to.
-
getSetCategory
Description copied from interface:AlgorithmReturns a set of categories to classify this algorithm . e.g. return new HashSet(Arrays.asList( Category.GRAPH, Category.NODE )); is an algorithm, working on graphs and more specific on nodes - Specified by:
getSetCategoryin interfaceAlgorithm- Overrides:
getSetCategoryin classAbstractAlgorithm- Returns:
- Set of Category Enums that classify this algorithm.
-
isLayoutAlgorithm
public boolean isLayoutAlgorithm()Description copied from interface:AlgorithmA LayoutAlgorithm should return true. All other types of algorithms should return false.- Specified by:
isLayoutAlgorithmin interfaceAlgorithm- Overrides:
isLayoutAlgorithmin classAbstractAlgorithm- Returns:
-
getPatternNodeDistance
public double getPatternNodeDistance() -
setPatternNodeDistance
public void setPatternNodeDistance(double patternNodeDistance)
-