public void getFriendshipWindmillGraph(mxAnalysisGraph aGraph, int numBranches, int branchSize)
	{
		if (numBranches < 2 || branchSize < 2)
		{
			throw new IllegalArgumentException();
		}

		mxGraph graph = aGraph.getGraph();
		Object parent = graph.getDefaultParent();
		int numVertices = numBranches * branchSize + 1;
		Object[] vertices = new Object[numVertices];
		int vertexCount = 0;

		for (int i = 0; i < numBranches; i++)
		{
			for (int j = 0; j < branchSize; j++)
			{
				vertices[vertexCount] = graph.insertVertex(parent, null, new Integer(vertexCount).toString(), 0, 0, 25, 25);
				vertexCount++;
			}
		}

		vertices[numVertices - 1] = graph.insertVertex(parent, null, new Integer(numVertices - 1).toString(), 0, 0, 25, 25);

		//make the connections
		for (int i = 0; i < numBranches; i++)
		{
			Object oldVertex = vertices[numVertices - 1];

			for (int j = 0; j < branchSize; j++)
			{
				Object currVertex = vertices[i * (branchSize) + j];
				graph.insertEdge(parent, null, getNewEdgeValue(aGraph), oldVertex, currVertex);
				oldVertex = currVertex;
			}

			Object currVertex = vertices[numVertices - 1];
			graph.insertEdge(parent, null, getNewEdgeValue(aGraph), oldVertex, currVertex);
		}
	};