Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

DisplayManager.h

Go to the documentation of this file.
00001 /*************** <auto-copyright.pl BEGIN do not edit this line> **************
00002  *
00003  * VR Juggler is (C) Copyright 1998-2003 by Iowa State University
00004  *
00005  * Original Authors:
00006  *   Allen Bierbaum, Christopher Just,
00007  *   Patrick Hartling, Kevin Meinert,
00008  *   Carolina Cruz-Neira, Albert Baker
00009  *
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Library General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Library General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Library General Public
00021  * License along with this library; if not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00023  * Boston, MA 02111-1307, USA.
00024  *
00025  * -----------------------------------------------------------------
00026  * File:          $RCSfile: DisplayManager.h,v $
00027  * Date modified: $Date: 2003/07/10 23:59:14 $
00028  * Version:       $Revision: 1.44 $
00029  * -----------------------------------------------------------------
00030  *
00031  *************** <auto-copyright.pl END do not edit this line> ***************/
00032 
00033 #ifndef _VRJ_DISPLAY_MANAGER_H_
00034 #define _VRJ_DISPLAY_MANAGER_H_
00035 
00036 #include <vrj/vrjConfig.h>
00037 #include <vector>
00038 
00039 #include <vpr/Util/Singleton.h>
00040 
00041 //#include <gadget/Type/Position.h>
00042 #include <vrj/Util/Debug.h>
00043 #include <jccl/RTRC/ConfigElementHandler.h>
00044 #include <jccl/Config/ConfigElementPtr.h>
00045 
00046 namespace vrj
00047 {
00048 
00049 class DrawManager;
00050 class Display;
00051 
00064 class VJ_CLASS_API DisplayManager : public jccl::ConfigElementHandler
00065 {
00066 public:     // --- Config stuff -- //
00071    virtual bool configAdd(jccl::ConfigElementPtr element);
00072 
00077    virtual bool configRemove(jccl::ConfigElementPtr element);
00078 
00084    virtual bool configCanHandle(jccl::ConfigElementPtr element);
00085 
00086 public:
00091    virtual void updateProjections(const float scaleFactor);
00092 
00100    void setDrawManager(DrawManager* drawMgr);
00101 
00106    std::vector<vrj::Display*> getActiveDisplays()
00107    { return mActiveDisplays;}
00108 
00113    std::vector<vrj::Display*> getInActiveDisplays()
00114    { return mInactiveDisplays;}
00115 
00120    std::vector<vrj::Display*> getAllDisplays();
00121 
00122    jccl::ConfigElementPtr getDisplaySystemElement();
00123 
00124 private:
00133    bool configAddDisplay(jccl::ConfigElementPtr element);
00134 
00141    bool configRemoveDisplay(jccl::ConfigElementPtr element);
00142 
00143 
00152    int addDisplay(vrj::Display* disp, bool notifyDrawMgr = true);
00153 
00161    int closeDisplay(vrj::Display* disp, bool notifyDrawMgr = true);
00162 
00164    bool isMemberDisplay(vrj::Display* disp);
00165 
00170    vrj::Display* findDisplayNamed(std::string name);
00171 
00172 public:
00173    std::vector<vrj::Display*> mActiveDisplays; 
00174    std::vector<vrj::Display*> mInactiveDisplays; 
00176 protected:
00177    DrawManager*    mDrawManager;           
00178    jccl::ConfigElementPtr mDisplaySystemElement; 
00182 protected:
00183    DisplayManager() : mDrawManager(NULL)
00184    {
00185        ;
00186    }
00187 
00188    virtual ~DisplayManager()
00189    {;}
00190 
00191    DisplayManager(const DisplayManager& o)
00192       : jccl::ConfigElementHandler()
00193    {
00194       ;
00195    }
00196 
00197    void operator= (const DisplayManager& o) {;}
00198 
00199    vprSingletonHeader( DisplayManager );
00200 };
00201 
00202 } // end namespace vrj
00203 #endif

Generated on Sun May 2 15:10:16 2004 for VR Juggler by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002