VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAggregateElement.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 #include <vrvCore/DtElement.h>
17 
19 #include <vrvCore/DtUniqueID.h>
20 
21 
22 #include <boost/unordered_map.hpp>
23 
24 namespace makVrv
25 {
30  {
31  public:
32  typedef boost::unordered_map<int, DtAggregateVisualizerSet*> ModelSetMap;
33 
36 
38  virtual ~DtAggregateElement();
39 
41  DtAggregateElement(const DtAggregateElement&) = delete;
43  DtAggregateElement& operator=(const DtAggregateElement&) = delete;
44 
45  public:
46 
48  virtual void setVisible( bool visible );
49 
53  virtual void setInvisible( bool );
54  virtual bool invisible() const;
55 
58  {
59  return myListener;
60  }
61 
63  virtual void slot_subordinatesChanged();
64 
66  inline const ModelSetMap& modelSetMap() const
67  {
68  return myAggregateModelSetMap;
69  }
70 
71  template <typename VisualizerClass>
72  void findVisualizers( std::vector<VisualizerClass*>& visualizers )
73  {
74  ModelSetMap::iterator i = myAggregateModelSetMap.begin();
75  ModelSetMap::iterator e = myAggregateModelSetMap.end();
76  for( ; i != e; ++i )
77  {
78  i->second->findVisualizers( visualizers );
79  }
80  }
81 
83  {
85  }
86 
87  boost::signalslib::signal<void( DtAggregateElement* )> signal_subordinatesChanged;
88 
89  protected:
91  void damageSet( DtEntityStateListener::DamageState damage );
92 
94  virtual void updateVisibilityStates();
95 
99  virtual void updateVisibilityState( DtAggregateVisualizerSet* );
100 
101  protected:
102 
107  };
108 }
boost::signalslib::signal< void(DtAggregateElement *)> signal_subordinatesChanged
Definition: DtAggregateElement.h:87
A single Aggregate element.
Definition: DtAggregateElement.h:29
boost::unordered_map< int, DtAggregateVisualizerSet * > ModelSetMap
Definition: DtAggregateElement.h:32
The DtAggregateStateListener is an abstract class.
Definition: DtAggregateStateListener.h:25
bool myInvisible
Definition: DtAggregateElement.h:106
Contains makVrv:DtAggregateVisualizerSet class.
DtSignalConnectionManager myConnections
Definition: DtAggregateElement.h:105
Definition: DtElementEntry.h:32
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:29
unsigned int ObjectType
Definition: DtElementEntry.h:50
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
const ModelSetMap & modelSetMap() const
Get the current model set map.
Definition: DtAggregateElement.h:66
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtElement class.
virtual DtElementEntry::ObjectType elementType() const
Virtual function for getting the element type.
Definition: DtAggregateElement.h:82
DtAggregateStateListener & listener()
Get the listener for the Aggregate this visualizer is visualizing.
Definition: DtAggregateElement.h:57
ModelSetMap myAggregateModelSetMap
Definition: DtAggregateElement.h:103
DtAggregateStateListener & myListener
Definition: DtAggregateElement.h:104
Base class to provide boost signal/slot management.
DamageState
Definition: DtEntityStateListener.h:88
Contains makVrv::DtUniqueID type.
This class is a set of aggregate visualizers, all of the visualizers in this set must support the agg...
Definition: DtAggregateVisualizerSet.h:24
void findVisualizers(std::vector< VisualizerClass * > &visualizers)
Definition: DtAggregateElement.h:72
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)