VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectVisibilityManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
10 #include <vrvCore/DtUniqueID.h>
11 #include <vrvCore/DtStateView.h>
12 #include <vrvCore/DtEntityState.h>
17 
18 #include <unordered_map>
19 
20 namespace makVrv
21 {
22  class DtDe;
23 }
24 
28 namespace makVrf
29 {
30  class DtVrfSelectionFilter;
31 
33  {
34  public:
37 
39  virtual ~DtObjectVisibilityManager();
40 
42  static DtObjectVisibilityManager& instance(makVrv::DtDe& de);
43 
45  static void registerInstance(makVrv::DtDe&, DtObjectVisibilityManager*);
46 
48  virtual void show(makVrv::DtUniqueID, int context);
49  virtual void hide(makVrv::DtUniqueID, int context);
50 
52  virtual void elementAttributeChangeRequested(
53  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
54 
55  virtual bool anyVisible(const makVrv::DtSelectionManager::IdSet& set) const;
56 
57  virtual bool isVisible(makVrv::DtUniqueID, int hasFlag = -1) const;
58 
60  virtual bool onlyFlagHiding(makVrv::DtUniqueID, int flag) const;
61 
66  virtual DtVrfSelectionFilter* insertFilterAtBeginning(const DtVrfSelectionFilter&);
67  virtual DtVrfSelectionFilter* addFilter(const DtVrfSelectionFilter&);
68 
70  virtual bool removeFilter(const DtVrfSelectionFilter& filter);
71 
73  virtual void moveFilterToEnd(DtVrfSelectionFilter*);
74 
75  virtual void setObjectVisibleByFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
76 
78  boost::signals2::signal<void (makVrv::DtUniqueID, bool, int)> signal_objectVisibilityChanged;
79 
80  protected:
81  virtual void initialize();
82 
85  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
86  virtual void slot_onObjectUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
87 
88  virtual void slot_attributesChanged(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
89  virtual void updateVisibility(makVrv::DtUniqueID id, bool visibile);
90 
91  protected:
92  typedef std::unordered_map<makVrv::DtUniqueID, std::set<int> > VisibilityStatus;
94 
97 
98  std::vector<DtVrfSelectionFilter*> myVisibilityFilters;
99  };
100 }
boost::signals2::signal< void(makVrv::DtUniqueID, bool, int)> signal_objectVisibilityChanged
Signal sent for show/hide change. Flag is true if visible, false if hidden.
Definition: objectVisibilityManager.h:78
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:32
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
VisibilityStatus myVisibilityStatus
Definition: objectVisibilityManager.h:93
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
std::vector< DtVrfSelectionFilter * > myVisibilityFilters
Definition: objectVisibilityManager.h:98
makVrv::DtSignalConnectionManager myConnectionManager
Definition: objectVisibilityManager.h:96
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Definition: objectVisibilityManager.h:32
Contains makVrv::DtVirtualBaseClass class.
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
makVrv::DtDe & myDe
Definition: objectVisibilityManager.h:95
Contains makVrv::DtUniqueID type.
Contains the DtElementAttributeManager class declaration.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
std::unordered_map< makVrv::DtUniqueID, std::set< int > > VisibilityStatus
Definition: objectVisibilityManager.h:92
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)