VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtWindowManager.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2010 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtWindowManager.h,v $ $Revision: 1.43 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #ifndef DtWindowManager_H_ 
00014 #define DtWindowManager_H_ 
00015 
00016 #include <vrvCore/vrvCore.h> 
00017 #include <vrvUtil/DtWindowConfiguration.h> 
00018 #include <vrvUtil/DtDisplayConfiguration.h>
00019 #include <vrvUtil/DtVirtualBaseClass.h>
00020 
00021 #include <boost/signal.hpp>
00022 #include <list>
00023 
00024 namespace makVrv 
00025 { 
00026    class DtChannelProctor;
00027    class DtChannelManager;
00028    class DtDe;
00029    class DtWindow;
00030    class DtAgentManager;
00031    class DtWindowProctor;
00032    class DtWindowManagerSignaler;
00033 
00036    class DT_DLL_VRVCORE DtWindowManager 
00037    { 
00038 
00039    public:
00040 
00041       typedef std::list<DtWindow*> WindowList;
00042 
00043    public:
00044 
00045 
00046 
00048       virtual ~DtWindowManager();
00049 
00051       virtual void realizeConfiguration();
00052 
00056       virtual bool addWindow(const std::string& displayName, const DtWindowConfiguration& wc);
00057 
00060       virtual bool destroyWindow( const std::string& displayName, const std::string& windowName );
00061 
00064       virtual bool modifyWindow( const std::string& displayName, const std::string& windowName, 
00065          const DtWindowConfiguration& config );
00066 
00068       DtWindow* findWindow(const std::string& name);
00069 
00071       virtual WindowList& windows();
00072 
00074       virtual const WindowList& windows() const;
00075 
00078       virtual void addWindow(DtWindow* window);
00079 
00081       virtual void destroyWindow(DtWindow* window);
00082 
00085       virtual bool tick();
00086 
00089       virtual bool isVisibleAndCloseToCamera(
00090          float sphereRadius,
00091          float sphereCenterX, float sphereCenterY, float sphereCenterZ,
00092          float distance, float upX, float upY, float upZ) const = 0;
00093 
00095       virtual int maxTextureUnits() const;
00096 
00097    protected:
00098 
00101       DtWindowManager(DtDe& de, DtWindowConfigurations&);
00102 
00105       virtual DtWindow* realizeWindowConfiguration(DtWindowConfiguration& wc);
00106 
00108       virtual void destroyWindows();
00109 
00110    protected:
00111 
00113 
00114       DtDe& myDe;
00115       DtWindowManagerSignaler& mySignaler;
00116       DtWindowConfigurations& myWindowConfigurations;
00117       WindowList myWindowList;
00118       DtWindowProctor* myWindowProctor;
00119       DtChannelProctor* myChannelProctor;
00120       unsigned int myExternalContextCount;
00121    }; 
00122 
00125    class DT_DLL_VRVCORE DtWindowManagerSignaler : public DtVirtualBaseClass
00126    {
00127    public:
00128 
00130       static DtWindowManagerSignaler& instance(DtDe& de);
00131 
00133       virtual ~DtWindowManagerSignaler();
00134 
00136       boost::signal<void (DtWindow*)> signal_windowCreated;
00137 
00139       boost::signal<void (DtWindow*)> signal_windowToBeDestroyed;
00140 
00141    protected:
00142 
00143       DtWindowManagerSignaler();
00144 
00145    };
00146 
00149    class DT_DLL_VRVCORE DtWindowManagerCreator : public DtVirtualBaseClass
00150    {
00151    public:
00153       static DtWindowManagerCreator& instance(DtDe& de);
00154 
00156       static void registerInstance(DtDe& de, DtWindowManagerCreator* anInstance);     
00157 
00159       virtual DtWindowManager* create(DtDe& de, DtWindowConfigurations& configs) = 0;
00160    };
00161 } 
00162  
00163 #endif 
00164  

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)