/// <summary>
 ///		Create a read-only rabies model datasource combining a passed cells datasource
 ///		and a passed animals datasource.
 /// </summary>
 /// <param name="Rnd">The random number generator to be used by the generated background</param>
 /// <param name="Cells">
 ///		The cells datasource.  An ArgumentNullException exception is raised if Cells
 ///		is null.
 ///	</param>
 /// <param name="Animals">
 ///		The animals datasource.  An ArgumentNullException exception is raised if Animals
 ///		is null.
 ///	</param>
 public cModelDataSource(cUniformRandom Rnd, cCellsDataSource Cells, cAnimalsDataSource Animals)
 {
     // set the values
     mvarCells   = Cells;
     mvarAnimals = Animals;
     mvarRnd     = Rnd;
     // make sure that they are valid
     CheckCells();
     CheckAnimals();
     CheckRandom();
 }
 /// <summary>
 ///		Create a read-only rabies model datasource from a passed cells datasource,
 ///		a passed wintertype list and a single animal.
 /// </summary>
 /// <param name="Rnd">The random number generator to be used by the generated background</param>
 /// <param name="Cells">
 ///		The cells datasource.  An ArgumentNullException exception is raised if Cells
 ///		is null.
 ///	</param>
 /// <param name="Winters">
 ///		The list of winter types.  An ArgumentNullException exception is raised if
 ///		Winters is null.  An ArgumentException exception is raised if Winter is an
 ///		empty list.
 ///	</param>
 ///	<param name="MaleMarkers">
 ///	    The markers for the seed male animal
 /// </param>
 /// <param name="FemaleMarkers">
 ///     The markers for the seed female animal
 /// </param>
 public cModelDataSource(cUniformRandom Rnd, cCellsDataSource Cells, cWinterTypeList Winters,
                         string MaleMarkers, string FemaleMarkers)
 {
     // set the values
     mvarCells   = Cells;
     mvarWinters = Winters;
     mvarRnd     = Rnd;
     // make sure that they a valid
     CheckCells();
     CheckWinterTypes();
     CheckRandom();
     // get markers
     mvarMaleMarkers   = MaleMarkers;
     mvarFemaleMarkers = FemaleMarkers;
 }
 /// <summary>
 ///		Create a read-only rabies model datasource from a passed cells datasource with
 ///		NYears years with the passed winter bias.
 /// </summary>
 /// <param name="Rnd">The random number generator to be used by the generated background</param>
 /// <param name="Cells">
 ///		The cells datasource.  An ArgumentNullException exception is raised if Cells
 ///		is null.
 ///	</param>
 /// <param name="NYears">
 ///		The number of years to create.  An ArgumentOutOfRangeException exception is
 ///		raised if NYears is less than one.
 ///	</param>
 /// <param name="WinterBias">The winter type bias for those years.</param>
 ///	<param name="MaleMarkers">
 ///	    The markers for the seed male animal
 /// </param>
 /// <param name="FemaleMarkers">
 ///     The markers for the seed female animal
 /// </param>
 public cModelDataSource(cUniformRandom Rnd, cCellsDataSource Cells, int NYears, enumWinterType WinterBias,
                         string MaleMarkers, string FemaleMarkers)
 {
     // set the values
     mvarCells      = Cells;
     mvarYears      = NYears;
     mvarWinterBias = WinterBias;
     mvarRnd        = Rnd;
     // make sure that they are valid
     CheckCells();
     CheckNYears();
     CheckRandom();
     // get markers
     mvarMaleMarkers   = MaleMarkers;
     mvarFemaleMarkers = FemaleMarkers;
 }