diff --git a/ss/LightBounce.cc b/ss/LightBounce.cc index 2ca6ab3..47d1ea4 100644 --- a/ss/LightBounce.cc +++ b/ss/LightBounce.cc @@ -13,7 +13,7 @@ using namespace std; #define SIZE 5 #define STRIDE_MULTIPLIER 1.0; -#define ZOOM 14.0 +#define ZOOM 12.0 LightBounceBox::LightBounceBox(LogoBox * lb, float x, float y, float z, @@ -57,22 +57,36 @@ LightBounce::LightBounce(SSMain * _SSMain) : SSMode(_SSMain) float x = -half_size + box_stride / 2.0; for (int j = 0; j < SIZE; j++) { + // front LightBounceBox * box = new LightBounceBox( - new LogoBox(), x, y, -half_size, 0, 0, rot ? 90.0 : 0 + new LogoBox(), x, y, -half_size, 0, 180.0, rot ? 90.0 : 0 ); m_boxes.push_back(box); + // right box = new LightBounceBox( new LogoBox(), half_size, y, x, 0, 90.0, rot ? 0 : 90.0 ); m_boxes.push_back(box); + // back box = new LightBounceBox( - new LogoBox(), x, y, half_size, 0, 180.0, rot ? 90.0 : 0 + new LogoBox(), x, y, half_size, 0, 0, rot ? 90.0 : 0 ); m_boxes.push_back(box); + // left box = new LightBounceBox( new LogoBox(), -half_size, y, x, 0, 270.0, rot ? 0 : 90.0 ); m_boxes.push_back(box); + // top + box = new LightBounceBox( + new LogoBox(), x, half_size, y, 270, 0, rot ? 0 : 90.0 + ); + m_boxes.push_back(box); + // bottom + box = new LightBounceBox( + new LogoBox(), x, -half_size, y, 90, 0, rot ? 0 : 90.0 + ); + m_boxes.push_back(box); rot = !rot; x += box_stride; @@ -93,8 +107,8 @@ void LightBounce::update() { glViewport(i*width/numMonitors, 0, width/numMonitors, height); glLoadIdentity(); - gluLookAt(0, 0, SIZE * ZOOM, 0, 0, 0, 0, 1, 0); - glRotatef(m_elapsed/33.0f, 0, 1, 0); + gluLookAt(0, SIZE * ZOOM * 2.0 / 3.0, SIZE * ZOOM, 0, 0, 0, 0, 1, 0); + glRotatef(m_elapsed/66.0f, 0, 1, 0); int sz = m_boxes.size(); for (int i = 0; i < sz; i++) {