public CombinerComponents ReadCombinerV( int vertexIndex,
                                                Dictionary<int, List<InputSourceCollection>> inputSources,
                                                XmlNode node )
        {
            CombinerComponents cc = new CombinerComponents( vertexIndex, inputSources );

            string[] indices = node.InnerText.Split( (char[]) null, StringSplitOptions.RemoveEmptyEntries );
            int inputCount = inputSources.Count; // technically, i want the maximum key
            int influenceCount = indices.Length / inputCount;
            for( int influence = 0; influence < influenceCount; ++influence )
            {
                CombinerEntry entry = new CombinerEntry();
                cc.Add( entry );
                // Build the entry to be the right size
                while( entry.Count < inputSources.Count )
                    entry.Add( -1 );
                foreach( int inputIndex in inputSources.Keys )
                    entry[ inputIndex ] = int.Parse( indices[ influence * inputCount + inputIndex ] );
            }
            return cc;
        }
 public List<CombinerComponents> ReadV( Dictionary<int, List<InputSourceCollection>> inputSources,
                                       List<int> vertexCounts,
                                       XmlNode node )
 {
     List<CombinerComponents> combComps = new List<CombinerComponents>();
     string[] indices = node.InnerText.Split( (char[]) null, StringSplitOptions.RemoveEmptyEntries );
     int offset = 0;
     for( int vertexIndex = 0; vertexIndex < vertexCounts.Count; ++vertexIndex )
     {
         CombinerComponents cc = new CombinerComponents( vertexIndex, inputSources );
         combComps.Add( cc );
         for( int influence = 0; influence < vertexCounts[ vertexIndex ]; ++influence )
         {
             CombinerEntry entry = new CombinerEntry();
             cc.Add( entry );
             // Build the entry to be the right size
             while( entry.Count < inputSources.Count )
                 entry.Add( -1 );
             foreach( int inputIndex in inputSources.Keys )
                 entry[ inputIndex ] = int.Parse( indices[ offset + influence * inputSources.Count + inputIndex ] );
         }
         offset += vertexCounts[ vertexIndex ] * inputSources.Count;
     }
     return combComps;
 }