57 lines
998 B
C++
57 lines
998 B
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;
|
|
};
|
|
|
|
#endif
|