simplescenes.h
来自「使用stl技术,(还没看,是听说的)」· C头文件 代码 · 共 67 行
H
67 行
/*
SimpleScenes.h
-------------
A basic framework class off which the specific scenes will be built.
Does some housekeeping of objects and so on, eventually functionality
similar to this will be built into OgreOde.
*/
#ifndef _SIMPLESCENES_H_
#define _SIMPLESCENES_H_
// We'll need the OgreOde definitions
#include "OgreOde.h"
/*
The base Test class, is also able to listen for collisions and thus change the contact properties
*/
class SimpleScenes:public OgreOde::CollisionListener,public OgreOde::StepListener
{
public:
static const Real KEY_DELAY;
static const Real STEP_RATE;
// Constructor/destructor
SimpleScenes();
virtual ~SimpleScenes();
// Useful methods that will be handy for all tests
OgreOde::Body* createRandomObject(OgreOde::Geometry::Class objectClass);
void updateScene();
const SceneNode* getLastNode(){return _last_node;}
void setInfoText(const String& text);
// The things we'll have to override in derived classes
// Actual tests must provide a name but everything else can default
virtual bool collision(OgreOde::Contact* contact);
virtual const String& getKeys(){return StringUtil::BLANK;}
virtual const String& getName() = 0;
virtual void addForcesAndTorques(){}
virtual void frameEnded(Real time,InputReader* input);
// If we register this with a stepper it'll get told every time the world's about to be stepped
bool preStep(Real time)
{
addForcesAndTorques();
return true;
}
protected:
// Keep track of what created us
SceneManager* _mgr;
OgreOde::World* _world;
OgreOde::Space* _space;
// Whatever the derived class sets this to will be what's looked at by the camera
SceneNode* _last_node;
// Keep track of the things we create so we can
// delete them automatically when we switch scenes
std::vector<OgreOde::Body*> _bodies;
std::vector<OgreOde::Geometry*> _geoms;
std::vector<OgreOde::Joint*> _joints;
Real _key_delay;
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?