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>
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() override;
40 
42  static DtObjectVisibilityManager& instance(makVrv::DtDe& de);
43 
45  static void registerInstance(makVrv::DtDe&, DtObjectVisibilityManager*);
46 
50 
52  virtual void elementAttributeChangeRequested(
53  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, std::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(DtSimObjectReference s);
76 
77  virtual void addIgnoreVisibilityOfObject(const DtEntityType& t);
78  virtual void removeIgnoreVisibilityOfObject(const DtEntityType& t);
79  virtual bool ignoreVisibilityOfObject(DtSimObjectReference) const;
80  const std::vector<DtEntityType>& ignoreVisibilityOfObjects() const
81  {
82  return myIgnoreVisibilityOfObjects;
83  }
84 
86  boost::signals2::signal<void (makVrv::DtUniqueID, bool, int)> signal_objectVisibilityChanged;
87 
88  protected:
89  virtual void setObjectVisibilityFlag(makVrv::DtUniqueID id, bool show, int context);
90  virtual void initialize();
91 
94  virtual void slot_onStateViewAdded(DtSimObjectReference s);
95 
96  virtual void slot_attributesChanged(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
97  virtual void updateVisibility(makVrv::DtUniqueID id, bool visibile);
98 
99  protected:
100  typedef std::unordered_map<makVrv::DtUniqueID, std::set<int> > VisibilityStatus;
102  std::vector<DtEntityType> myIgnoreVisibilityOfObjects;
103 
106 
107  std::vector<DtVrfSelectionFilter*> myVisibilityFilters;
108  };
109 }
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:86
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:28
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:101
Contains integers that determine the context with which to show/hide a visualizer.
Contains makVrv:DtSelectionManager class.
std::vector< DtVrfSelectionFilter * > myVisibilityFilters
Definition: objectVisibilityManager.h:107
makVrv::DtSignalConnectionManager myConnectionManager
Definition: objectVisibilityManager.h:105
#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
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
std::vector< DtEntityType > myIgnoreVisibilityOfObjects
Definition: objectVisibilityManager.h:102
const std::vector< DtEntityType > & ignoreVisibilityOfObjects() const
Definition: objectVisibilityManager.h:80
makVrv::DtDe & myDe
Definition: objectVisibilityManager.h:104
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:76
VisualizerShowHideContext
Definition: DtShowHideContext.h:41
std::unordered_map< makVrv::DtUniqueID, std::set< int > > VisibilityStatus
Definition: objectVisibilityManager.h:100
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)