#ifndef _ASW_GUI_VIEWPORT_H_ #define _ASW_GUI_VIEWPORT_H_ #include "asw/gui/elementvisible.h" namespace ASW { namespace Gui { // Represents a portion of the screen into which the scene will be drawn class Viewport : public ASW::Gui::ElementVisible { private: MATH::Matrix3f m_clsMatrix; float m_fltFov; float m_fltNear; float m_fltFar; bool m_blnShouldRefresh; ASW::Cache::Node * m_ptrRenderIndex; Viewport(const Viewport &, const TCHAR *, const TCHAR *); public: Viewport(const TCHAR *); Viewport(const Viewport &); virtual ASW::Gui::Element::AutoPtr Clone() const; virtual ASW::Gui::Element::AutoPtr Clone(const TCHAR *, const TCHAR *) const; float GetFar() const {return m_fltFar;} float GetFov() const {return m_fltFov;} float GetNear() const {return m_fltNear;} virtual ASW::Script::Variant GetProperty(const TCHAR *) const; const MATH::Matrix3f & GetMatrix() const {return m_clsMatrix;} void SetMatrix(const MATH::Matrix3f &); virtual void SetProperty(const TCHAR *, const ASW::Script::Variant &); bool ShouldRefresh() const {return m_blnShouldRefresh;} virtual void Update(ASW::Gui::UpdateParams &, const MATH::Point2s &, const MATH::Point2us &, const unsigned int); }; } } #endif