public LSystemStructureTreeElement( LinkedFileSet sourceFileSet, SymbolString <float> symbols, int indexInSymbols, int branchSymbolIndex = -1) { symbol = symbols[indexInSymbols]; parameters = symbols.parameters.AsArray(indexInSymbols); var symbolDefinition = sourceFileSet.GetLeafMostSymbolDefinition(symbol); var builder = new StringBuilder(); builder.Append(symbolDefinition.characterInSourceFile); if (!"[]".Contains(symbolDefinition.characterInSourceFile)) { symbols.WriteParamString(indexInSymbols, builder); builder.Append(" : "); builder.Append(Path.GetFileName(symbolDefinition.sourceFileDefinition)); } displayName = builder.ToString(); if (branchSymbolIndex != -1) { id = -branchSymbolIndex - 1; } else { id = indexInSymbols; } }