/// <summary> /// This is a kind of constructor that builds the internal representation of /// the signature given the index of the vertex to use as a root. It also /// takes a maximum height, which limits how many vertices will be visited. /// </summary> /// <param name="rootVertexIndex">the index in the graph of the root for this signature</param> /// <param name="graphVertexCount">the number of vertices in the graph</param> /// <param name="height">the maximum height of the signature</param> public void Create(int rootVertexIndex, int graphVertexCount, int height) { this.Height = height; vertexMapping = new Dictionary <int, int> { [rootVertexIndex] = 0 }; dag = new DAG(0, graphVertexCount); vertexCount = 1; Builder(1, dag.GetRootLayer(), new List <DAG.Arc>(), height); if (invariantType == InvariantType.String) { CreateWithStringLabels(); } else if (invariantType == InvariantType.Integer) { CreateWithIntLabels(); } else { // XXX TODO : unknown invariant type Console.Error.WriteLine("unknown invariant type " + invariantType); } }