VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIntervisibilitySettingsManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2023 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 
16 #include <vrvCore/DtElementEntry.h>
18 
19 #include <vrvUtil/signalslib.h>
20 #include <boost/unordered_map.hpp>
21 
22 #include <matrix/vlVector.h>
23 
24 namespace makVrv
25 {
26 
27  class DtDe;
28  class DtIntervisibilityElement;
29  class DtIntervisibilityEventProcessor;
30 
34  : public DtBaseSettingsManager<makArchives::DtIntervisibilitySettingsRecord>
35  {
36  public:
37 
39  static DtIntervisibilitySettingsManager& instance( DtDe& de );
40 
43 
46 
48  void setIntervisibilityEnabled( bool enabled );
50  bool intervisibilityEnabled() const;
51 
53  void setLeftClickMakesObjectsPermanent( bool enabled );
55  bool leftClickMakesObjectsPermanent() const;
56 
58  void setOriginIntervisibilityElevation( double height );
60  double originIntervisibilityElevation() const;
61 
63  void setEndPointIntervisibilityElevation( double height );
65  double endPointIntervisibilityElevation() const;
66 
68  void setFanModeSamplingRate( double radAngle );
70  double fanModeSamplingRate() const;
71 
74  void setEntityFanUpdateRate( double interval );
77  double entityFanUpdateRate() const;
78 
80  void setHatLinesEnabled( bool hatEnabled );
82  bool hatLinesEnabled() const;
83 
85  void setHatLinesOnSelectionOnly( bool selOnly );
87  bool hatLinesOnSelectionOnly() const;
88 
90  void setVisibleColor( float r, float g, float b, float a );
92  void visibleColor( float& r, float& g, float& b, float& a ) const;
93 
95  void setBlockedColor( float r, float g, float b, float a );
97  void blockedColor( float& r, float& g, float& b, float& a ) const;
98 
100  void setCircleColor( float r, float g, float b, float a );
102  void circleColor( float& r, float& g, float& b, float& a ) const;
103 
105 
108 
109  boost::signalslib::signal<void (bool)> signal_intervisibilityEnabledSet;
110  boost::signalslib::signal<void (bool)> signal_leftClickMakesObjectsPermanentSet;
111  boost::signalslib::signal<void (double)> signal_originIntervisibilityElevationSet;
112  boost::signalslib::signal<void (double)> signal_endPointIntervisibilityElevationSet;
113  boost::signalslib::signal<void (double)> signal_fanModeSamplingRateSet;
114  boost::signalslib::signal<void (double)> signal_entityFanUpdateRateSet;
115  boost::signalslib::signal<void (bool)> signal_hatLinesEnabledSet;
116  boost::signalslib::signal<void (bool)> signal_hatLinesOnSelectionOnlySet;
117  boost::signalslib::signal<void (float r, float g, float b, float a)> signal_visibleColorSet;
118  boost::signalslib::signal<void (float r, float g, float b, float a)> signal_blockedColorSet;
119  boost::signalslib::signal<void (float r, float g, float b, float a)> signal_circleColorSet;
120 
122 
125 
127  virtual void setFromRecord( const makArchives::DtIntervisibilitySettingsRecord& rec );
128 
130  virtual void getRecord( makArchives::DtIntervisibilitySettingsRecord& rec ) const;
131 
133 
136 
138  virtual bool isAttachableObjectType( DtElementEntry::ObjectType t ) const;
139 
141  virtual bool isAttachableObjectType( DtUniqueID elementId ) const;
142 
144 
145  protected:
146 
148  template <typename ManagerClass>
149  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
150 
152  template <typename ManagerClass>
153  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
154 
157 
162  virtual bool applyFactoryOverrides(makArchives::DtIntervisibilitySettingsRecord& rec) const;
163 
164  protected:
165 
168 
171 
176 
177  float myVisibleColor[4];
178  float myBlockedColor[4];
179  float myCircleColor[4];
180 
181  };
182 
183 }
184 
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:291
bool myHatLinesEnabled
Definition: DtIntervisibilitySettingsManager.h:169
boost::signalslib::signal< void(double)> signal_originIntervisibilityElevationSet
Definition: DtIntervisibilitySettingsManager.h:111
bool myHatLinesOnSelectionOnly
Definition: DtIntervisibilitySettingsManager.h:170
boost::signalslib::signal< void(double)> signal_entityFanUpdateRateSet
Definition: DtIntervisibilitySettingsManager.h:114
bool myLeftClickMakesObjectsPermanent
Definition: DtIntervisibilitySettingsManager.h:167
double myEntityFanUpdateRate
Definition: DtIntervisibilitySettingsManager.h:175
boost::signalslib::signal< void(bool)> signal_hatLinesEnabledSet
Definition: DtIntervisibilitySettingsManager.h:115
unsigned int ObjectType
Definition: DtElementEntry.h:54
bool myIntervisibilityEnabled
Definition: DtIntervisibilitySettingsManager.h:166
double myEndPointIntervisibilityElevation
Definition: DtIntervisibilitySettingsManager.h:173
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myOriginIntervisibilityElevation
Definition: DtIntervisibilitySettingsManager.h:172
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:879
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signalslib::signal< void(bool)> signal_intervisibilityEnabledSet
Definition: DtIntervisibilitySettingsManager.h:109
double myFanModeSamplingRate
Definition: DtIntervisibilitySettingsManager.h:174
boost::signalslib::signal< void(float r, float g, float b, float a)> signal_blockedColorSet
Definition: DtIntervisibilitySettingsManager.h:118
boost::signalslib::signal< void(double)> signal_endPointIntervisibilityElevationSet
Definition: DtIntervisibilitySettingsManager.h:112
This manager will manage settings for intervisibility objects.
Definition: DtIntervisibilitySettingsManager.h:33
boost::signalslib::signal< void(bool)> signal_leftClickMakesObjectsPermanentSet
Definition: DtIntervisibilitySettingsManager.h:110
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:841
boost::signalslib::signal< void(bool)> signal_hatLinesOnSelectionOnlySet
Definition: DtIntervisibilitySettingsManager.h:116
boost::signalslib::signal< void(float r, float g, float b, float a)> signal_circleColorSet
Definition: DtIntervisibilitySettingsManager.h:119
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
boost::signalslib::signal< void(double)> signal_fanModeSamplingRateSet
Definition: DtIntervisibilitySettingsManager.h:113
Record class for Intervisibility settings.
Definition: DtIntervisibilitySettingsRecord.h:19
Contains the DtIntervisibilitySettingsRecord class declaration.
boost::signalslib::signal< void(float r, float g, float b, float a)> signal_visibleColorSet
Definition: DtIntervisibilitySettingsManager.h:117
Contains makVrv::DtElementEntry class.
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)