00001 /****************************************************************************\ 00002 * VRVis * 00003 * http://vrvis.sourceforge.net * 00004 * (C) 2004 by Alex Loeffler * 00005 * mailto:aloeffler@users.sourceforge.net * 00006 **************************************************************************** 00007 * License * 00008 * * 00009 * This library is free software; you can redistribute it and/or modify it * 00010 * under the terms of the GNU Library General Public License as published * 00011 * by the Free Software Foundation, version 2. * 00012 * * 00013 * This library is distributed in the hope that it will be useful, but * 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00016 * Library General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Library General Public * 00019 * License along with this library; if not, write to the Free Software * 00020 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 00021 \****************************************************************************/ 00022 00023 #ifndef VIS_HPP 00024 #define VIS_HPP 00025 00026 #include "Common.hpp" 00027 #include "Drawable.hpp" 00028 00029 namespace vrvis 00030 { 00031 00032 class Input; 00033 00035 class Vis : public Drawable 00036 { 00037 // ================================================================== PUBLIC 00038 00039 public: 00040 00041 // ------------------------------------------------------------- Destructor. 00042 00044 virtual ~Vis(void); 00045 00046 // ----------------------------------------------------- Component Creation. 00047 00049 virtual void createComponents(void) = 0; 00050 00051 // ----------------------------------- GL Drawing (Inherited from Drawable). 00052 00054 virtual void draw(void) = 0; 00055 00056 // =============================================================== PROTECTED 00057 00058 protected: 00059 00060 // ------------------------------------------------------------ Constructor. 00061 00063 Vis(void); 00064 00065 // ----------------------------------------------------------- Input Access. 00066 00068 Input* getInput(void); 00069 00070 // ================================================================= PRIVATE 00071 00072 private: 00073 00074 // ---------------------------------------------------------------- Friends. 00075 00077 friend class VisApp; 00078 00079 // ----------------------------------------------------------- Manage Input. 00080 00082 void initInput(void); 00083 00084 // ---------------------------------------------------------------- Members. 00085 00087 Input* mpInput; 00088 }; 00089 00090 } // End namespace. 00091 00092 #endif // VIS_HPP