VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtLocalObjectManager.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2012 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: DtLocalObjectManager.h,v $ $Revision: 1.4 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 #pragma once
00012 
00013 #include <vrfGuiCore/vrfGuiCore.h>
00014 #include <vrfGuiCore/DtEnvironmentalCreationData.h>
00015 #include <vrfGuiCore/DtEntityCreationData.h>
00016 #include <vrvUtil/DtVirtualBaseClass.h>
00017 #include <vrvCore/DtSelectionManager.h>
00018 #include <vrvCore/DtElementAttributes.h>
00019 #include <vrvCore/DtStateView.h>
00020 #include <vrvUtil/DtSignalConnectionManager.h>
00021 #include <vrfutil/predefinedEntityTypes.h>
00022 
00023 #include <vlutil/vlSmartPointers.h>
00024 #include <boost/shared_ptr.hpp>
00025 
00026 class DtEntityType;
00027 class DtVector;
00028 
00029 namespace makVrv
00030 {
00031    class DtDe;
00032    class DtTacticalGraphicOverlay;
00033    struct DtVrlinkSimulatedBaseState;
00034    struct DtVrlinkSimulatedEntityState;
00035 }
00036 
00039 namespace makVrf
00040 {
00041    class DtVrfObjectFacadeInterface;
00042    class DtEnvironmentalFacadeCollection;
00043    class DtEntityFacadeCollection;
00044    struct DtVrlinkSimulatedEnvironmentProcess;
00045 
00052 
00053    class DT_DLL_VRFGUICORE DtLocalObjectManager : public makVrv::DtVirtualBaseClass
00054    {
00055    public:
00056       DtLocalObjectManager(makVrv::DtDe& de);
00057 
00058       static DtLocalObjectManager& instance(makVrv::DtDe& de);
00059       static void registerInstance(makVrv::DtDe& de, DtLocalObjectManager*);
00060 
00061       virtual ~DtLocalObjectManager();
00062 
00064       virtual bool isCreating() const;
00065 
00067       virtual void tacticalGraphicsVertexSelected(
00068          const makVrv::DtUniqueID& selected, const makVrv::DtUniqueID& parentElementID);
00069 
00071       virtual void tacticalGraphicsVertexDeselected(
00072          const makVrv::DtUniqueID& deselected, const makVrv::DtUniqueID& parent);
00073 
00075       virtual void slot_onCurrentSelectionChanged(
00076          const makVrv::DtSelectionManager::IdSet& selected,
00077          const makVrv::DtSelectionManager::IdSet& deselected);
00078 
00086       virtual DtEnvironmentalFacadeCollection* create(const DtEntityType& t,
00087          const std::vector<DtVector>& localPoints,
00088          int force,
00089          const DtEnvironmentalCreationData&,
00090          int modelSet = -1);
00091 
00099       virtual DtEntityFacadeCollection* create(const DtEntityCreationData&,
00100          const std::string& layer = "", int modelSet = -1);
00101 
00103       virtual const makVrv::DtTacticalGraphicOverlay* createOnLayer(const std::string& layerName = "");
00104 
00106       virtual void completeStateUpdate(makVrv::DtUniqueID id);
00107 
00109       virtual void setVisible(makVrv::DtUniqueID id, bool hide);
00110 
00112       virtual bool isLocal(makVrv::DtUniqueID id) const;
00113 
00114       virtual void updateState(makVrv::DtUniqueID id);
00115 
00118       virtual void setEditable(makVrv::DtUniqueID id, bool);
00119 
00122       virtual bool isEditable(makVrv::DtUniqueID id) const;
00123 
00125       virtual bool isMemberOfLayer(makVrv::DtUniqueID id, const std::string& layername) const;
00126 
00128       virtual void deleteLocal(makVrv::DtUniqueID id);
00129 
00131       virtual void deleteAll();
00132 
00134       virtual void deleteAllFromLayer(const std::string& layername);
00135 
00140       virtual void update(makVrv::DtElementID id, const std::string* name = 0, const std::vector<DtVector>& points = std::vector<DtVector>(),
00141          int* force = 0, const std::string* overlay = 0, const std::string* userData = 0, double* newHeading = 0);
00142 
00144       virtual DtVector getVertexPosition(makVrv::DtElementID parent, makVrv::DtUniqueID vertexId) const;
00145 
00148       virtual void create(const DtEntityType& t, int force);
00149 
00151       virtual bool allSelectionIsLocal() const;
00152 
00153    protected:
00155       virtual void slot_elementAttributeChangeRequested( 
00156          makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
00157 
00158       virtual void handleElementAttributeChanged(
00159          makVrv::DtUniqueID id, const makVrv::DtElementAttribute* attr);
00160 
00162       virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
00163 
00165       virtual void completeStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
00166 
00168       virtual void update(DtEnvironmentalFacadeCollection*, const DtVrlinkSimulatedEnvironmentProcess*);
00169       virtual void update(DtEntityFacadeCollection*, const makVrv::DtVrlinkSimulatedEntityState*);
00170 
00172       virtual void finalizeObjectCreation(const DtEntityType&, std::string name, int, const std::vector<DtVector>&, double, bool, bool);      
00173       virtual void slot_stoppedObjectCreation();
00174 
00175    public:
00180       boost::signal<void (bool)> signal_creating;
00181 
00183       boost::signal<void (DtVrfObjectFacadeInterface*, makVrv::DtVrlinkSimulatedBaseState*)> signal_objectCreated;
00184 
00186       boost::signal<void (DtVrfObjectFacadeInterface*)> signal_objectAboutToBeDeleted;
00187 
00189 
00190    protected:
00191       makVrv::DtDe& myDe;
00192 
00193       bool myIsCreating;
00194 
00196       typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*> LocalObjects;
00197       LocalObjects myObjects;
00198       makVrv::DtSignalConnectionManager myConnections;
00199 
00200       typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*> LocalStateData;
00201       LocalStateData myData;
00202    };
00203 }

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)