44 lines
952 B
C++
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
|