dwscr/ss/TumblingLogos.h
josh 68d41e9c63 moved files to trunk directory
git-svn-id: svn://anubis/dwscr/trunk@83 5bef9df8-b654-44bb-925b-0ff18baa8f8c
2008-09-22 17:27:40 +00:00

44 lines
952 B
C++

/* Author: Josh Holtrop
* DornerWorks screensaver
* A slightly more interesting screensaver mode involving
* colliding DW logos contained in a cube that spins while
* gravity randomly changes direction
*/
#ifndef TUMBLING_LOGOS_H
#define TUMBLING_LOGOS_H
#include "SSMain.h"
#include "SSMode.h"
#include "LogoBox.h"
#include <ode/ode.h>
#include <vector>
#define TUMBLE_BOX_CELLS 4
class TumblingLogos : public SSMode
{
public:
TumblingLogos(SSMain * _SSMain);
~TumblingLogos();
void update();
protected:
void createWorld();
void worldStep();
void changeGravity();
friend void TumblingLogos_collide_callback(void * data, dGeomID o1, dGeomID o2);
dWorldID m_world;
dSpaceID m_space;
double m_logoSize;
double m_boxSize;
dJointGroupID m_contactJointGroup;
std::vector<LogoBox *> m_logos;
Uint32 m_lastGravityChangeTime;
Uint32 m_lastElapsed;
};
#endif