protected override void DrawFase2( ref int arg1, ref int arg2, ref int val, int min1, int max1, int min2, int max2,
int minV, int maxV, int maxBlocksToDraw )
{
for ( arg1 = min1; arg1 <= max1; ++arg1 ) {
for ( arg2 = min2; arg2 <= max2; ++arg2 ) {
int a1 = arg1 - min1, a2 = arg2 - min2;
if ( _surface[a1][a2] == int.MaxValue )
continue;
//find min value around
int minVal = _surface[a1][a2];
if ( a1 - 1 >= 0 )
minVal = Math.Min( minVal, _surface[a1 - 1][a2] + 1 );
if ( a1 + 1 < _surface.Length )
minVal = Math.Min( minVal, _surface[a1 + 1][a2] + 1 );
if ( a2 - 1 >= 0 )
minVal = Math.Min( minVal, _surface[a1][a2 - 1] + 1 );
if ( a2 + 1 < _surface[a1].Length )
minVal = Math.Min( minVal, _surface[a1][a2 + 1] + 1 );
minVal = Math.Max( minVal, minV );
for ( val = minVal; val <= _surface[a1][a2] && val <= maxV; ++val )
if ( DrawOneBlock() ) {
//if (TimeToEndBatch)
// return;
}
}
}
}