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 void
check()
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 double
energyOfNode(Node node, double newX, double newY)
void
execute()
Performs the layout.String
getCategory()
Returns the category an algorithm should assigned to.static double
getDistance(double x, double y, Node b)
String
getName()
Returns the name of the algorithm.Parameter[]
getParameters()
Returns the parameter object for the radius.double
getPatternNodeDistance()
Set<Category>
getSetCategory()
Returns a set of categories to classify this algorithm .boolean
isLayoutAlgorithm()
A LayoutAlgorithm should return true.void
layoutOnCircles(Collection<Node> workNodes, double defaultRadius, String operationname)
void
reset()
Resets the internal state of the algorithm.void
setParameters(Parameter[] params)
Sets the radius parameter to the given value.void
setPatternNodeDistance(double patternNodeDistance)
void
setRadius(double radius)
void
withMinimizingCrossings()
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:Algorithm
Resets the internal state of the algorithm.- Specified by:
reset
in interfaceAlgorithm
- Overrides:
reset
in 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:
check
in interfaceAlgorithm
- Overrides:
check
in 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:
getParameters
in interfaceAlgorithm
- Overrides:
getParameters
in classAbstractAlgorithm
- Returns:
- the parameter array
-
setParameters
Sets the radius parameter to the given value.- Specified by:
setParameters
in interfaceAlgorithm
- Overrides:
setParameters
in classAbstractAlgorithm
- Parameters:
params
- An array with exact one DoubleParameter.
-
getCategory
Description copied from interface:Algorithm
Returns the category an algorithm should assigned to. Return NULL if the algorithm should be sorted directly in the plugin menu.- Specified by:
getCategory
in interfaceAlgorithm
- Overrides:
getCategory
in classAbstractAlgorithm
- Returns:
- The category an algorithm should assigned to.
-
getSetCategory
Description copied from interface:Algorithm
Returns 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:
getSetCategory
in interfaceAlgorithm
- Overrides:
getSetCategory
in classAbstractAlgorithm
- Returns:
- Set of Category Enums that classify this algorithm.
-
isLayoutAlgorithm
public boolean isLayoutAlgorithm()Description copied from interface:Algorithm
A LayoutAlgorithm should return true. All other types of algorithms should return false.- Specified by:
isLayoutAlgorithm
in interfaceAlgorithm
- Overrides:
isLayoutAlgorithm
in classAbstractAlgorithm
- Returns:
-
getPatternNodeDistance
public double getPatternNodeDistance() -
setPatternNodeDistance
public void setPatternNodeDistance(double patternNodeDistance)
-