// cWorld.h
// 2/27/04
// Forrest Briggs
// Stores the camera, static objects and ball and 
// handles drawing everingthing, as collisions
// 3 / 16 / 04 Ben Pellow
// Added timer to make simulation speed and frame rate independent.

#ifndef cworld_h
#define cworld_h

#include "ForwardDeclarations.h"
#include "cStaticTriangleMesh.h"
#include "cBall.h"
#include "cCamera.h"
#include "cParticleSystem.h"
#include <vector>

class cWorld
{
public:
    cStaticTriangleMesh *staticObjects_; 
    cBall ball_;
    
    cParticleSystem *particleSystem_;
    
    cCamera camera_;
    
    // allocates staticObjects_ as a cTestMesh
    cWorld(cParticleSystem* ps);	
    
    ~cWorld();
    
    void loadLevel(string filename, int level);
    void unloadLevel();
    
    // update the position of the ball 
    void update(float dt); 
    
    // tells the camera to update, then draws
    // the static objects and the ball
    void draw();
    
    bool levelIsLoaded();
    
private:
    bool loadedLevel_;
};

#endif // end define cworld_h