public override int DrawBatch( int maxBlocksToDraw )
{
//ignoring maxBlocksToDraw
//do it 3 times, iterating axis in different order, to get to the closed surface as close as possible
InternalDraw( ref Coords.X, ref Coords.Y, ref Coords.Z,
Bounds.XMin, Bounds.XMax, Bounds.YMin, Bounds.YMax, Bounds.ZMin, Bounds.ZMax,
ref Coords.X, ref Coords.Y, ref Coords.Z,
Bounds.XMin, Bounds.XMax, Bounds.YMin, Bounds.YMax, Bounds.ZMin, Bounds.ZMax,
maxBlocksToDraw );
InternalDraw( ref Coords.X, ref Coords.Z, ref Coords.Y,
Bounds.XMin, Bounds.XMax, Bounds.ZMin, Bounds.ZMax, Bounds.YMin, Bounds.YMax,
ref Coords.X, ref Coords.Y, ref Coords.Z,
Bounds.XMin, Bounds.XMax, Bounds.YMin, Bounds.YMax, Bounds.ZMin, Bounds.ZMax,
maxBlocksToDraw );
InternalDraw( ref Coords.Y, ref Coords.Z, ref Coords.X,
Bounds.YMin, Bounds.YMax, Bounds.ZMin, Bounds.ZMax, Bounds.XMin, Bounds.XMax,
ref Coords.X, ref Coords.Y, ref Coords.Z,
Bounds.XMin, Bounds.XMax, Bounds.YMin, Bounds.YMax, Bounds.ZMin, Bounds.ZMax,
maxBlocksToDraw );
IsDone = true;
return _count;
}