VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtIntervisibilitySettingsManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 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 <boost/signals.hpp>
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  void setRangeInfoLabelsEnabled( bool enabled );
107  bool rangeInfoLabelsEnabled() const;
108 
110  void setRangeInfoLabelBackgroundColor( float r, float g, float b );
112  void rangeInfoLabelBackgroundColor( float& r, float& g, float& b );
113 
115  void setRangeInfoLabelBackgroundOpacity( float opacity );
117  float rangeInfoLabelBackgroundOpacity() const;
118 
120  void setRangeInfoAltChangeFieldEnabled( bool enabled );
122  bool rangeInfoAltChangeFieldEnabled() const;
123 
125  void setRangeInfoLocationFieldEnabled( bool enabled );
127  bool rangeInfoLocationFieldEnabled() const;
128 
130  void setRangeInfoHeadingFieldEnabled( bool enabled );
132  bool rangeInfoHeadingFieldEnabled() const;
133 
135  void setRangeInfoRangeFieldEnabled( bool enabled );
137  bool rangeInfoRangeFieldEnabled() const;
138 
140 
143 
144  boost::signal<void (bool)> signal_intervisibilityEnabledSet;
145  boost::signal<void (bool)> signal_leftClickMakesObjectsPermanentSet;
146  boost::signal<void (double)> signal_originIntervisibilityElevationSet;
147  boost::signal<void (double)> signal_endPointIntervisibilityElevationSet;
148  boost::signal<void (double)> signal_fanModeSamplingRateSet;
149  boost::signal<void (double)> signal_entityFanUpdateRateSet;
150  boost::signal<void (bool)> signal_hatLinesEnabledSet;
151  boost::signal<void (bool)> signal_hatLinesOnSelectionOnlySet;
152  boost::signal<void (float r, float g, float b, float a)> signal_visibleColorSet;
153  boost::signal<void (float r, float g, float b, float a)> signal_blockedColorSet;
154  boost::signal<void (float r, float g, float b, float a)> signal_circleColorSet;
155  boost::signal<void (bool)> signal_rangeInfoLabelsEnabledSet;
156  boost::signal<void (float r, float g, float b, float a)> signal_rangeInfoBackgroundColorSet;
159  boost::signal<void (bool)> signal_rangeInfoHeadingFieldEnabledChanged;
160  boost::signal<void (bool)> signal_rangeInfoRangeFieldEnabledChanged;
161 
163 
166 
168  virtual void setFromRecord( const makArchives::DtIntervisibilitySettingsRecord& rec );
169 
171  virtual void getRecord( makArchives::DtIntervisibilitySettingsRecord& rec ) const;
172 
174 
177 
179  virtual bool isAttachableObjectType( DtElementEntry::ObjectType t ) const;
180 
182  virtual bool isAttachableObjectType( DtUniqueID elementId ) const;
183 
185 
186  protected:
187 
189  template <typename ManagerClass>
190  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
191 
193  template <typename ManagerClass>
194  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
195 
198 
199  protected:
200 
203 
206 
211 
212  float myVisibleColor[4];
213  float myBlockedColor[4];
214  float myCircleColor[4];
215 
217  float myRangeInfoBackgroundColor[4];
222 
223  };
224 
225 }
226 

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)