/// <inheritdoc />
        public IBoundedIndexable <TIndex, TValue> Rasterize(
            float cellLength, Func <TValue> internalValueFactory, Func <TValue> externalValueFactory)
        {
            IRasterizableMaskContracts.Rasterize(cellLength, internalValueFactory, externalValueFactory);

            return(this.Rasterize(cellLength, _ => internalValueFactory(), _ => externalValueFactory()));
        }
        /// <inheritdoc />
        public IBoundedIndexable <TIndex, TValue> Rasterize(
            float cellLength, TValue internalValue, TValue externalValue)
        {
            IRasterizableMaskContracts.Rasterize(cellLength, internalValue, externalValue);

            return(this.Rasterize(cellLength, _ => internalValue, _ => externalValue));
        }