private void CrossSection( Vector3I center, float radius, int diraxis, Block matidx )
{
int rad = ( int )( radius + .618 );
int secidx1 = ( diraxis - 1 ) % 3;
int secidx2 = ( diraxis + 1 ) % 3;
Vector3I coord = new Vector3I();
for ( int off1 = -rad; off1 <= rad; off1++ ) {
for ( int off2 = -rad; off2 <= rad; off2++ ) {
float thisdist = ( float )Math.Sqrt( Sqr( Math.Abs( off1 ) + .5 ) +
Sqr( Math.Abs( off2 ) + .5 ) );
if ( thisdist > radius )
continue;
int pri = center[diraxis];
int sec1 = center[secidx1] + off1;
int sec2 = center[secidx2] + off2;
coord[diraxis] = pri;
coord[secidx1] = sec1;
coord[secidx2] = sec2;
Args.PlaceBlock( coord, matidx );
}
}
}