dwscr/ss/LightBounce.h
josh 1fd4895298 orb moving and bouncing off walls now
git-svn-id: svn://anubis/dwscr/trunk@108 5bef9df8-b654-44bb-925b-0ff18baa8f8c
2008-11-14 01:48:39 +00:00

61 lines
1.1 KiB
C++

/* Author: Josh Holtrop
* DornerWorks screensaver
*/
#ifndef LIGHTBOUNCE_H
#define LIGHTBOUNCE_H
#include "SSMain.h"
#include "SSMode.h"
#include "LogoBox.h"
#include <vector>
using namespace std;
class LightBounceBox
{
public:
LightBounceBox(LogoBox * lb,
float x, float y, float z,
float xr, float yr, float zr);
~LightBounceBox();
void draw() { glCallList(m_dl); }
void updateDist(float x, float y, float z);
float getDist() { return dist; }
private:
float x;
float y;
float z;
float xr;
float yr;
float zr;
float dist;
GLuint m_dl;
};
class LightBounceBoxComparator
{
public:
bool operator()(LightBounceBox * l1, LightBounceBox * l2);
};
class LightBounce : public SSMode
{
public:
LightBounce(SSMain * _SSMain);
~LightBounce();
void update();
protected:
LightBounceBoxComparator m_comparator;
vector<LightBounceBox *> m_boxes;
LogoBox m_logoBox;
GLfloat m_orb_pos[3];
GLfloat m_orb_dir[3];
GLuint m_orb_dl;
float m_half_size;
};
#endif