X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fstage.h;h=daf4f4b982c72ab52fa07008c79a10d2d2b1ba69;hb=34051ffdca091ad3971c1382c71c5fc58b7ade0f;hp=f34e6ae8462eeb01360c4bfab816ed3f969b9dfb;hpb=35332818fc6bad98fe77831de2c51a11326e31aa;p=libs%2Fdemoscene.git diff --git a/source/stage.h b/source/stage.h index f34e6ae..daf4f4b 100644 --- a/source/stage.h +++ b/source/stage.h @@ -1,29 +1,71 @@ #ifndef MSP_DEMOSCENE_STAGE_H_ #define MSP_DEMOSCENE_STAGE_H_ +#include #include -#include "cameracontrol.h" -#include "sequencer.h" +#include "action.h" struct Stage { - class UseInView: public Sequencer::Action + class UseInView: public Action { + public: + class Loader: public Msp::DataFile::DerivedObjectLoader + { + public: + Loader(UseInView &, Demo &); + + private: + void stage(const std::string &); + void view(const std::string &); + }; + private: - Msp::GL::View &view; - Stage &stage; + Msp::GL::View *view; + Stage *stage; public: + UseInView(); UseInView(Msp::GL::View &, Stage &); + virtual void validate() const; + + virtual void start(float, float); + }; + + class SetCamera: public Action + { + public: + class Loader: public Msp::DataFile::DerivedObjectLoader + { + public: + Loader(SetCamera &, Demo &); + + private: + void camera(const std::string &); + void stage(const std::string &); + }; + + private: + Stage *stage; + const Msp::GL::Camera *camera; + + public: + SetCamera(); + SetCamera(Stage &, const Msp::GL::Camera &); + + virtual void validate() const; + virtual void start(float, float); }; Msp::GL::Pipeline *pipeline; - CameraControl camera_control; + Msp::GL::Camera camera; Stage(); ~Stage(); + + void set_camera(const Msp::GL::Camera &); }; #endif