rubix :: RubixCube :: rotate_line
private fun rotate_line(ln_id: Int, direction: Int) do
var line_data = rot_ln_buffer
if line_data.is_empty then for i in [0 .. 4[ do line_data.add(new Array[Int])
array1d_copy_to(faces[front_face][ln_id], line_data[0])
array1d_copy_to(faces[left_face][ln_id], line_data[1])
array1d_copy_to(faces[back_face][2 - ln_id], line_data[2])
array1d_copy_to(faces[right_face][ln_id], line_data[3])
if direction == counterclock then
line_data[3].swap_at(0, 2)
line_data[2].swap_at(0, 2)
rot_ln_buffer.rotate_left
else if direction == clock then
line_data[1].swap_at(0, 2)
line_data[2].swap_at(0, 2)
rot_ln_buffer.rotate_right
else
abort
end
array1d_copy_to(line_data[0], faces[front_face][ln_id])
array1d_copy_to(line_data[1], faces[left_face][ln_id])
array1d_copy_to(line_data[2], faces[back_face][2 - ln_id])
array1d_copy_to(line_data[3], faces[right_face][ln_id])
end
lib/rubix/rubix.nit:239,2--261,4