Class Lattice2DGenerator<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.algorithms.generators.Lattice2DGenerator<V,E>
-
- All Implemented Interfaces:
GraphGenerator<V,E>
,org.apache.commons.collections4.Factory<edu.uci.ics.jung.graph.Graph<V,E>>
- Direct Known Subclasses:
KleinbergSmallWorldGenerator
public class Lattice2DGenerator<V,E> extends java.lang.Object implements GraphGenerator<V,E>
Simple generator of an m x n lattice where each vertex is incident with each of its neighbors (to the left, right, up, and down). May be toroidal, in which case the vertices on the edges are connected to their counterparts on the opposite edges as well.If the graph factory supplied has a default edge type of
EdgeType.DIRECTED
, then edges will be created in both directions between adjacent vertices.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
col_count
protected org.apache.commons.collections4.Factory<E>
edge_factory
protected org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>>
graph_factory
protected boolean
is_directed
protected boolean
is_toroidal
protected int
row_count
protected org.apache.commons.collections4.Factory<V>
vertex_factory
-
Constructor Summary
Constructors Constructor Description Lattice2DGenerator(org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>> graph_factory, org.apache.commons.collections4.Factory<V> vertex_factory, org.apache.commons.collections4.Factory<E> edge_factory, int latticeSize, boolean isToroidal)
Constructs a generator of square lattices of sizelatticeSize
with the specified parameters.Lattice2DGenerator(org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>> graph_factory, org.apache.commons.collections4.Factory<V> vertex_factory, org.apache.commons.collections4.Factory<E> edge_factory, int row_count, int col_count, boolean isToroidal)
Creates a generator ofrow_count
xcol_count
lattices with the specified parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description edu.uci.ics.jung.graph.Graph<V,E>
create()
protected int
getCol(int i)
Returns the column in which vertexi
is found.int
getGridEdgeCount()
Returns the number of edges found in a lattice of this generator's specifications.protected int
getIndex(int i, int j)
protected int
getRow(int i)
Returns the row in which vertexi
is found.protected V
getVertex(int i)
Returns thei
th vertex (counting row-wise).protected V
getVertex(int i, int j)
Returns the vertex at position (i mod row_count, j mod col_count
).protected int
mod(int i, int modulus)
-
-
-
Field Detail
-
row_count
protected int row_count
-
col_count
protected int col_count
-
is_toroidal
protected boolean is_toroidal
-
is_directed
protected boolean is_directed
-
graph_factory
protected org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>> graph_factory
-
vertex_factory
protected org.apache.commons.collections4.Factory<V> vertex_factory
-
edge_factory
protected org.apache.commons.collections4.Factory<E> edge_factory
-
-
Constructor Detail
-
Lattice2DGenerator
public Lattice2DGenerator(org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>> graph_factory, org.apache.commons.collections4.Factory<V> vertex_factory, org.apache.commons.collections4.Factory<E> edge_factory, int latticeSize, boolean isToroidal)
Constructs a generator of square lattices of sizelatticeSize
with the specified parameters.- Parameters:
graph_factory
- used to create theGraph
for the latticevertex_factory
- used to create the lattice verticesedge_factory
- used to create the lattice edgeslatticeSize
- the number of rows and columns of the latticeisToroidal
- if true, the created lattice wraps from top to bottom and left to right
-
Lattice2DGenerator
public Lattice2DGenerator(org.apache.commons.collections4.Factory<? extends edu.uci.ics.jung.graph.Graph<V,E>> graph_factory, org.apache.commons.collections4.Factory<V> vertex_factory, org.apache.commons.collections4.Factory<E> edge_factory, int row_count, int col_count, boolean isToroidal)
Creates a generator ofrow_count
xcol_count
lattices with the specified parameters.- Parameters:
graph_factory
- used to create theGraph
for the latticevertex_factory
- used to create the lattice verticesedge_factory
- used to create the lattice edgesrow_count
- the number of rows in the latticecol_count
- the number of columns in the latticeisToroidal
- if true, the created lattice wraps from top to bottom and left to right
-
-
Method Detail
-
create
public edu.uci.ics.jung.graph.Graph<V,E> create()
- Specified by:
create
in interfaceorg.apache.commons.collections4.Factory<V>
- See Also:
Factory.create()
-
getGridEdgeCount
public int getGridEdgeCount()
Returns the number of edges found in a lattice of this generator's specifications. (This is useful for subclasses that may modify the generated graphs to add more edges.)
-
getIndex
protected int getIndex(int i, int j)
-
mod
protected int mod(int i, int modulus)
-
getVertex
protected V getVertex(int i, int j)
Returns the vertex at position (i mod row_count, j mod col_count
).
-
getVertex
protected V getVertex(int i)
Returns thei
th vertex (counting row-wise).
-
getRow
protected int getRow(int i)
Returns the row in which vertexi
is found.
-
getCol
protected int getCol(int i)
Returns the column in which vertexi
is found.
-
-