VR-Forces 4.0.4 Class Documentation
include/vrvVrl/DtEntityElement.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtEntityElement.h,v $ $Revision: 1.17 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 
00015 #include <vrvVrl/vrvVrl.h>
00016 #include <vrvUtil/DtSignalConnectionManager.h>
00017 #include <vrvCore/DtStateVisualizer.h>
00018 #include <vrvCore/DtEntityVisualizerSet.h>
00019 #include <vrvVrl/DtVrlinkElement.h>
00020 #include <boost/unordered_map.hpp>
00021 
00022 namespace makVrv
00023 {
00024    class DtStateVisualizerFactory;
00025 
00026    namespace DT_PROTOCOL_NAMESPACE
00027    {
00028       class DtVrlinkEntityStateListener;
00029       class DtVrlinkConnection;
00030 
00033       class DL_DLL_IGCONVRLINK DtEntityElement : public DtVrlinkElement
00034       {
00035       public:
00036 
00037          typedef boost::unordered_map<int, DtEntityVisualizerSet*> ModelSetMap;
00038         
00040          DtEntityElement( DtVrlinkConnection& conn, 
00041             DtVrlinkEntityStateListener& listener );
00042 
00044          ~DtEntityElement();
00045          
00047          void visualize(const DtSharedModelSetSettings::ModelSetVisualizedMap& sets);
00048          
00050          virtual void setVisible(bool visible);
00051 
00054          void setModelSetEnabled( int modelSet, bool enabled );
00055          
00058          void createVisualizersByModelSetAndType( int modelSet, int visualType );
00059          
00062          void destroyVisualizersByModelSetAndType( int modelSet, int visualType );
00063 
00065          inline const ModelSetMap& modelSetMap() const
00066          {
00067             return myEntityModelSetMap;
00068          }
00069 
00070          template <typename VisualizerClass>
00071          void findVisualizers(std::vector<VisualizerClass*>& visualizers)
00072          {
00073             ModelSetMap::iterator i = myEntityModelSetMap.begin();
00074             ModelSetMap::iterator e = myEntityModelSetMap.end();
00075             for(;i != e;++i)
00076             {
00077                i->second->findVisualizers(visualizers);
00078             }
00079          }
00080          
00082          inline DtVrlinkEntityStateListener& listener()
00083          {
00084             return myListener;
00085          }
00086 
00087          virtual DtElementEntry::ObjectType elementType() const
00088          {
00089             return DtElementEntry::Entity;
00090          }
00091 
00093          virtual void damageSet(unsigned int damage);
00094 
00096          virtual void updateVisibilityStates();
00097 
00101          virtual void updateVisibilityState(DtEntityVisualizerSet*);
00102 
00103       protected:
00104 
00105          virtual void getDefinitions( std::vector<DtUnicode>& definitions );
00106 
00109          virtual void slot_showStealthsChanged( bool enabled );                
00110 
00111       protected:
00112 
00113          ModelSetMap myEntityModelSetMap;
00114          DtVrlinkConnection& myVrlinkConnection;
00115          DtVrlinkEntityStateListener& myListener;
00116          DtSignalConnectionManager  myConnections;
00117       };
00118    }
00119 }
00120 

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)