VR-Forces 4.0.4 Class Documentation
include/vrvCigi/DtCigiConnection.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2009 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: DtCigiConnection.h,v $ $Revision: 1.1 $ $State: Exp $
00007 *********************************************************************/
00008 
00012 
00013 #ifndef DtCigiConnection_H_
00014 #define DtCigiConnection_H_
00015 
00016 #include <vrvCigi/vrvCigi.h>
00017 
00018 #include <vrvCigi/DtCigiConnSettingsHandler.h>
00019 #include <vrvCigi/DtCigiConnectionInitializer.h>
00020 #include <vrvCigi/DtCigiViewController.h>
00021 #include <vrvCigi/DtComponentSignaler.h>
00022 
00023 #include <vrvCore/DtBaseConnection.h>
00024 #include <vrvCore/DtViewStateProcessor.h>
00025 
00026 #include <vrvUtil/DtSignalConnectionManager.h>
00027 
00028 #include <makArchives/DtCigiSettingsRecord.h>
00029 
00030 #include <matrix/vlVector.h>
00031 
00032 #include <boost/signal.hpp>
00033 
00034 class CigiViewCtrlV3;
00035 
00036 namespace makVrv
00037 {
00038    class DtCigiConnectionInitializer;
00039    class DtCigiNetworkIO;
00040    class DtAgentManagerInterface;
00041    class DtCigiEntityVisualizer;
00042    class DtCoordinateSystem;
00043    class DtSharedSettingsManager;
00044    class DtVirtualBaseClass;
00045    class DtCigiIgControlProcessor;
00046    class DtHatHotResponder;
00047    class DtLosResponder;
00048 
00054    class DT_DLL_VRVCIGI DtCigiConnection : public DtBaseConnection
00055    {
00056    public:
00057       enum DtIgMode
00058       {
00059          ResetStandby = 0,
00060          Operate = 1,
00061          Debug = 2
00062       };
00063 
00065       DtCigiConnection(const DtCigiConnectionInitializer& init,
00066          DtAgentManagerInterface& sceneInterface,
00067          DtSharedSettingsManager& settingsManager);
00068 
00070       virtual ~DtCigiConnection();
00071 
00073       virtual bool tick();
00074 
00076       virtual bool connect();
00077 
00079       virtual bool disconnect();
00080 
00082       virtual void setConnectionInitializer(const DtCigiConnectionInitializer& init);
00083 
00085       virtual int cigiMinorVersion() const;
00086 
00088       virtual void sendCigiMessages();
00089 
00091       virtual void setCoordinateSystem(const std::string& name, 
00092          const std::string& params);
00093 
00095       virtual DtCoordinateSystem& coordinateSystem();
00096 
00098       virtual const DtCigiEntityVisualizer& entityManager() const;
00099 
00101       virtual const makArchives::DtCigiSettingsRecord& cigiSettings() const;
00102 
00104       virtual void setLastHostFrameNumber(unsigned int frameNumber);
00105       
00107       virtual unsigned int lastHostFrameNumber() const;
00108 
00114       virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
00115 
00128       inline bool destroyingInstances() const
00129       {
00130          return myDestroyingInstancesFlag;
00131       }
00132 
00135       virtual void registerInstance(const std::string& instanceName, 
00136          DtVirtualBaseClass* instance);
00137 
00139       virtual void setIgMode(DtIgMode mode);
00140 
00142       virtual DtIgMode igMode() const;
00143 
00145       virtual void setDatabaseNumber(int number);
00146 
00148       virtual int databaseNumber() const;
00149 
00152       virtual void setLoadingDatabase();
00153 
00156       virtual void setDatabaseLoaded();
00157 
00159       virtual void setExtrapolationEnabled(bool enabled);
00160 
00162       virtual bool extrapolationEnabled() const;
00163 
00165       virtual void setTimestampValid(bool valid);
00166 
00168       virtual bool timestampValid() const;
00169 
00171       virtual void setLastTimestamp(unsigned int timestamp);
00172 
00174       virtual unsigned int lastTimestamp() const;
00175 
00177       virtual void sendHatHotResponse(double height, unsigned int hotId, bool hat,
00178          unsigned int lastFrame, bool valid);
00179 
00181       virtual void sendLosResponse(int losId, int entityId, bool visible, double range,
00182          int responseCount, int hostFrame);
00183 
00185       virtual DtHatHotResponder& hatHotResponder();
00186 
00188       virtual DtLosResponder& losResponder();
00189 
00191       virtual unsigned int currentIgFrame() const;
00192 
00194       virtual DtComponentSignaler& componentSignaler();
00195 
00197       boost::signal<void (DtViewStateProcessor::ObserverAction&)>
00198          signal_viewChanged;
00199 
00201       boost::signal<void (int, DtUniqueID)> signal_alphaChanged;
00202 
00204       boost::signal<void (int, DtCigiViewController::DtViewDefinitionAction) > 
00205          signal_receivedViewDefinition;
00206 
00208       boost::signal<void (int, DtCigiViewController::DtViewControlAction)>
00209          signal_receivedViewControl;
00210 
00212       boost::signal<void (int, int, int, int, int, bool)> signal_timeSet;
00213 
00215       boost::signal<void (const std::string&)> signal_loadDatabase;
00216 
00218       boost::signal<void ()> signal_connected;
00219 
00221       boost::signal<void ()> signal_toBeDisconnected;
00222 
00223 
00224    protected:
00226       void on_viewControlReceived(const CigiViewCtrlV3& viewControl);
00227 
00228    protected:
00229       typedef std::map<std::string,DtVirtualBaseClass*> InstanceMap;
00230 
00231       DtCigiNetworkIO*       myNetworkIO;
00232       DtCigiEntityVisualizer*   myEntityManager;
00233       DtCigiConnectionInitializer myInitializer;
00234       DtCigiIgControlProcessor*     myIgController;
00235       DtHatHotResponder*       myHatHotResponder;
00236       DtLosResponder*          myLosResponder;
00237       DtCoordinateSystem*    myCoordinateSystem;
00238       DtComponentSignaler    myComponentSignaler;
00239       DtCigiConnSettingsHandler mySettingsHandler;
00240       bool                   myUseSynchronousMode;
00241       unsigned int           myIgFrame;
00242       unsigned int           myLastHostFrameNumber;
00243       DtSignalConnectionManager mySignals;
00244       DtIgMode                  myMode;
00245       int                       myDatabaseNumber;
00246       bool                      myDatabaseLoading;
00247       bool                      myExtrapolationEnabled;
00248       bool                      myTimestampValid;
00249       unsigned int              myLastTimestamp;
00250 
00251       //Stores a pointer to simulation specific instances.
00252       InstanceMap myInstances;
00253       bool        myDestroyingInstancesFlag;
00254       int         myCigiMinorVersion;
00255    };
00256 }
00257 
00258 #endif

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)