case TRACE_CONTOUR: { size[0] -= 1.0; size[1] -= 1.0; size[2] -= 1.0; /* trace periphery - prioritize plane centers, more chance of hitting */ VectorMA( boxOrigin, size[0]*-0.5, xAxis, p[k].pt ); k++; VectorMA( boxOrigin, -size[0]*-0.5, xAxis, p[k].pt ); k++; VectorMA( boxOrigin, size[1]*-0.5, yAxis, p[k].pt ); k++; VectorMA( boxOrigin, -size[0]*-0.5, yAxis, p[k].pt ); k++; VectorMA( boxOrigin, size[2]*-0.5, zAxis, p[k].pt ); k++; /* corners */ VectorMA( boxOrigin, size[0]*-0.5, xAxis, p[k].pt ); VectorMA( p[k].pt, size[2]*-0.5, zAxis, p[k].pt ); k++; VectorMA( boxOrigin, -size[0]*-0.5, xAxis, p[k].pt ); VectorMA( p[k].pt, size[2]*-0.5, zAxis, p[k].pt ); k++; VectorMA( boxOrigin, size[1]*-0.5, yAxis, p[k].pt ); VectorMA( p[k].pt, size[2]*-0.5, zAxis, p[k].pt ); k++; VectorMA( boxOrigin, -size[1]*-0.5, yAxis, p[k].pt ); VectorMA( p[k].pt, size[2]*-0.5, zAxis, p[k].pt ); k++; for( k=4; k < maxTraces; k++ ){ VectorMA( boxOrigin, size[0]*crandom()*-0.5, xAxis, p[k].pt ); VectorMA( p[k].pt, size[1]*crandom()*-0.5, yAxis, p[k].pt ); VectorMA( p[k].pt, size[2]*crandom()*-0.5, zAxis, p[k].pt ); } break; }