VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtConnection.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtConnection.h,v $ $Revision: 1.40 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvVrl/vrvVrl.h>
00016 #include <vrvCore/DtDriver.h>
00017 #include <vrvCore/DtBaseConnection.h>
00018 #include <vrvUtil/DtRandomNumberGenerator.h>
00019 #include <vrvCore/DtSelectionManager.h>
00020 #include <vrvCore/DtViewStateProcessor.h>
00021 
00022 #include <boost/signals.hpp>
00023 
00024 #include <map>
00025 #include <string>
00026 
00027 class DtEntityType;
00028 
00029 namespace makVrv
00030 {
00031    class DtAgentManagerInterface;
00032    class DtCoordinateSystem;
00033    class DtDisplayUnitsConverter;
00034    class DtElementChanges;
00035    class DtEntityAppearanceMapper;
00036    class DtEntityAppearanceMapperFactory;   
00037    class DtEntityAppearanceMapperFactoryCreator;
00038    class DtMouseState;
00039    class DtSharedSettingsManager;
00040 
00043    class DT_DLL_VRVVRL DtConnection : public DtBaseConnection
00044    {
00045    public:
00046 
00048       DtConnection(DtAgentManagerInterface& aSceneInterface,
00049          const DtCoordinateSystem& coordSystem,
00050          const DtEntityAppearanceMapperFactoryCreator& appFactoryCreator,
00051          DtSharedSettingsManager& settingsManager);
00052 
00054       virtual ~DtConnection();
00055 
00057       const DtEntityAppearanceMapper* findAppearanceMapper(const DtEntityType& type);
00058 
00059       virtual void coordinateSystemChanged(const std::string& coordinateName, 
00060          const std::string& coordinateOrigin );
00061 
00063       const DtCoordinateSystem& coordinateSystem() const;
00064 
00066       const DtDisplayUnitsConverter& displayUnitConverter() const;
00067 
00072       virtual bool connect() = 0;
00073 
00076       virtual bool connected() const;
00077 
00082       virtual bool disconnect() = 0;
00083 
00085       virtual void tick() = 0;
00086 
00088       virtual void setViewControlChanged( bool enabled ) = 0;
00089 
00091       virtual void observerUpdated(const std::string& observerName,
00092          double x, double y, double z,
00093          double psi, double theta, double phi) = 0;
00094 
00097       virtual void observerUpdated(const std::string& observerName,
00098          double x, double y, double z,
00099          double psi, double theta, double phi,
00100          double dx, double dy, double dz,
00101          double dpsi, double dtheta, double dphi) = 0;
00102 
00104       virtual void stopPublishingObserver(const std::string& observerName) = 0;
00105 
00107       virtual void startPublishingObserver(const std::string& observerName) = 0;
00108 
00110       virtual void attachObserverObject(const std::string& observerName, DtUniqueID id) = 0;
00111 
00113       virtual void detachObjects(const std::string& observerName) = 0;
00114 
00116       boost::signal<void (DtMouseState&, const DtUniqueID&,
00117          const std::string& displayEngineName, const std::string& windowName,
00118          const std::string& channelName)>
00119          signal_entityIndicatorMouseDown;
00120       boost::signal<void (DtMouseState&, const DtUniqueID&,
00121          const std::string& displayEngineName, const std::string& windowName,
00122          const std::string& channelName)>
00123          signal_entityIndicatorMouseUp;
00124       boost::signal<void (DtMouseState&, const DtUniqueID&,
00125          const std::string& displayEngineName, const std::string& windowName,
00126          const std::string& channelName)>
00127          signal_entityIndicatorMouseDblClick;
00128 
00130       boost::signal<void (DtMouseState&, const DtUniqueID&,
00131          const std::string& displayEngineName, const std::string& windowName,
00132          const std::string& channelName)>
00133          signal_tacticalGraphicIndicatorMouseDown;
00134       boost::signal<void (DtMouseState&, const DtUniqueID&,
00135          const std::string& displayEngineName, const std::string& windowName,
00136          const std::string& channelName)>
00137          signal_tacticalGraphicIndicatorMouseUp;
00138       boost::signal<void (DtMouseState&, const DtUniqueID&,
00139          const std::string& displayEngineName, const std::string& windowName,
00140          const std::string& channelName)>
00141          signal_tacticalGraphicIndicatorMouseDblClick;
00142 
00144       boost::signal<void (DtViewStateProcessor::ObserverAction&)>
00145          signal_viewChanged;
00146 
00148       boost::signal<void ()> signal_coordinateSystemChanged;
00149 
00151       boost::signal<void ()> signal_connected;
00152 
00154       boost::signal<void ()> signal_toBeDisconnected;
00155 
00156 
00159       void entityIndicatorMouseDown(DtMouseState& mouseState,
00160          const DtUniqueID& id, const std::string& displayEngineName,
00161          const std::string& windowName, const std::string& channelName);
00162       void entityIndicatorMouseUp(DtMouseState& mouseState,
00163          const DtUniqueID& id, const std::string& displayEngineName,
00164          const std::string& windowName, const std::string& channelName);
00165       void entityIndicatorMouseDblClick(DtMouseState& mouseState,
00166          const DtUniqueID& id, const std::string& displayEngineName,
00167          const std::string& windowName, const std::string& channelName);
00168 
00171       void tacticalGraphicIndicatorMouseDown(DtMouseState& mouseState,
00172          const DtUniqueID& id, const std::string& displayEngineName,
00173          const std::string& windowName, const std::string& channelName);
00174       void tacticalGraphicIndicatorMouseUp(DtMouseState& mouseState,
00175          const DtUniqueID& id, const std::string& displayEngineName,
00176          const std::string& windowName, const std::string& channelName);
00177       void tacticalGraphicIndicatorMouseDblClick(DtMouseState& mouseState,
00178          const DtUniqueID& id, const std::string& displayEngineName,
00179          const std::string& windowName, const std::string& channelName);
00180 
00182       void setAppNumber(int appNumber);
00183 
00185       void setSiteId(int siteId);
00186    protected:
00187 
00188       typedef boost::unordered_map<std::string,DtEntityAppearanceMapper*> AppearanceMapperMap;
00189 
00190       //The local coordinate system the simulation will use.
00191       DtCoordinateSystem* myCoordinateSystem;
00192 
00193       DtDisplayUnitsConverter* myCoordinateConverter;
00194 
00196       AppearanceMapperMap myAppearanceMapperMap;
00197 
00199       DtEntityAppearanceMapperFactory* myMapperFactory;
00200 
00201       int myAppNumber;
00202       int mySiteId;
00203    };
00204 }

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)