+++ /dev/null
-
-/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
-**] All rights reserved.
-*
-* vi:ts=4 sw=4 tw=75
-*
-* Distributable under the terms and conditions of the 2-clause BSD license;
-* see the file COPYING for a complete text of the license.
-*
-**************************************************************************/
-
-#ifndef _MOOF_VIEW_HH_
-#define _MOOF_VIEW_HH_
-
-/**
- * \file view.hh
- * Fundamental architectural classes.
- */
-
-#include <list>
-#include <string>
-
-#include <boost/shared_ptr.hpp>
-
-#include <moof/event.hh>
-#include <moof/math.hh>
-
-
-namespace moof {
-
-
-class settings;
-class video;
-
-class view;
-typedef boost::shared_ptr<view> view_ptr;
-
-
-/**
- * The core is essentially a stack of layers. While running, it updates
- * each layer from the bottom up every timestep. It also draws each layer
- * from the bottom up, adhering to the maximum frame-rate. Events are sent
- * to each layer from the top down until a layer signals the event was
- * handled. The core is also responsible for firing timers on time. The
- * core will continue running as long as there are layers on the stack.
- */
-class view
-{
-public:
-
- // loads settings: rngseed, timestep, framerate, showfps
- view(moof::settings& settings, moof::video& video);
- view();
-
- virtual ~view() {}
-
- virtual void did_add_to_view() {}
- virtual void will_remove_from_view() {}
-
- virtual void update(scalar t, scalar dt);
- virtual void draw(scalar alpha) const;
- virtual bool handle_event(const event& event);
-
-
- void add_child(view_ptr view);
- view_ptr remove_child(view* view);
- view_ptr remove_child(view_ptr view);
- void clear();
-
- view& parent() const;
- const std::list<view_ptr>& children() const;
-
- // do not call these without adding the view to a hierarchy with a base
- // view constructed with settings and a video context
- moof::settings& settings() const;
- moof::video& video() const;
-
- // set this machine in motion
- void run();
- void stop();
- bool is_running() const;
-
-
-private:
-
- class impl;
- boost::shared_ptr<impl> impl_;
-};
-
-
-} // namespace moof
-
-#endif // _MOOF_VIEW_HH_
-