Blob Blame Raw

#ifndef SCENE_H
#define SCENE_H


#include "track.h"

class Model;
class Simulator;
class Tool;
class Collider;

class Scene {
public:
    Track track;
    Vector3 angles;
    Vector3 offset;
    int stars_seed;
    
    Real time;
    Real time_forward;
    Real time_backward;
    Real time_speed;

    Real model_angle;
    
    Model *model;
    Simulator *simulator;
    
    Vector3 tool_pos;
    Vector3 tool_dir;
    Tool *tool;
    
    Collider *collider;
    
    bool move_tool;
    bool rotate_model;
    
    Scene();
    ~Scene();
    
    Vector4 color_by_time(Real t);
    Vector4 color_by_time_future(Real t);
    Vector4 color_by_time_past(Real t);
    
    Real random();
    
    void update(Real dt);
    
    void draw_stars();
    void draw_axes();
    void draw_track();
    void draw();
};


#endif