dwscr/ss/LightBounce.h
josh aac98e8699 added a LightBounceBoxComparator to order logos by distance from viewer
git-svn-id: svn://anubis/dwscr/trunk@102 5bef9df8-b654-44bb-925b-0ff18baa8f8c
2008-11-13 19:23:30 +00:00

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