VR-Forces 5.0.1 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>
15 
16 #include <boost/unordered_map.hpp>
17 
18 namespace makVrv
19 {
20  class DtDe;
21 }
22 
26 namespace makVrf
27 {
28  class DtVrfSelectionFilter;
29 
31  {
32  public:
35 
37  virtual ~DtObjectVisibilityManager();
38 
40  static DtObjectVisibilityManager& instance(makVrv::DtDe& de);
41 
43  static void registerInstance(makVrv::DtDe&, DtObjectVisibilityManager*);
44 
46  virtual void show(makVrv::DtUniqueID, int context);
47  virtual void hide(makVrv::DtUniqueID, int context);
48 
50  virtual void elementAttributeChangeRequested(
51  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
52 
53  virtual bool isVisible(makVrv::DtUniqueID, int hasFlag = -1) const;
54 
56  virtual bool onlyFlagHiding(makVrv::DtUniqueID, int flag) const;
57 
62  virtual DtVrfSelectionFilter* insertFilterAtBeginning(const DtVrfSelectionFilter&);
63  virtual DtVrfSelectionFilter* addFilter(const DtVrfSelectionFilter&);
64 
66  virtual bool removeFilter(const DtVrfSelectionFilter& filter);
67 
69  virtual void moveFilterToEnd(DtVrfSelectionFilter*);
70 
71  virtual void setObjectVisibleByFilters(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
72 
74  boost::signals2::signal<void (makVrv::DtUniqueID, bool, int)> signal_objectVisibilityChanged;
75 
76  protected:
77  virtual void initialize();
78 
81  virtual void slot_onStateViewAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
82  virtual void slot_onObjectUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
83 
84  protected:
85  typedef boost::unordered_map<makVrv::DtUniqueID, std::set<int> > VisibilityStatus;
87 
90 
91  std::vector<DtVrfSelectionFilter*> myVisibilityFilters;
92  };
93 }
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:74
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:86
Contains makVrv::DtStateView class.
std::vector< DtVrfSelectionFilter * > myVisibilityFilters
Definition: objectVisibilityManager.h:91
makVrv::DtSignalConnectionManager myConnectionManager
Definition: objectVisibilityManager.h:89
boost::unordered_map< makVrv::DtUniqueID, std::set< int > > VisibilityStatus
Definition: objectVisibilityManager.h:85
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Definition: objectVisibilityManager.h:30
Contains makVrv::DtVirtualBaseClass class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
Base class to provide boost signal/slot management.
makVrv::DtDe & myDe
Definition: objectVisibilityManager.h:88
Contains makVrv::DtUniqueID type.
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:70

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)