VR-Forces 4.3 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 
17 #include <vrvCore/DtUniqueID.h>
18 #include <vrvCore/DtElementEntry.h>
20 
21 #include <boost/signals.hpp>
22 #include <boost/unordered_map.hpp>
23 
24 class DtVector;
25 
26 namespace makVrv
27 {
28 
29  class DtDe;
30  class DtIntervisibilityElement;
31  class DtIntervisibilityEventProcessor;
32 
36  : public DtBaseSettingsManager<makArchives::DtIntervisibilitySettingsRecord>
37  {
38  public:
39 
41  static DtIntervisibilitySettingsManager& instance( DtDe& de );
42 
45 
48 
50  void setIntervisibilityEnabled( bool enabled );
52  bool intervisibilityEnabled() const;
53 
55  void setLeftClickMakesObjectsPermanent( bool enabled );
57  bool leftClickMakesObjectsPermanent() const;
58 
60  void setOriginIntervisibilityElevation( double height );
62  double originIntervisibilityElevation() const;
63 
65  void setEndPointIntervisibilityElevation( double height );
67  double endPointIntervisibilityElevation() const;
68 
70  void setFanModeSamplingRate( double radAngle );
72  double fanModeSamplingRate() const;
73 
76  void setEntityFanUpdateRate( double interval );
79  double entityFanUpdateRate() const;
80 
82  void setHatLinesEnabled( bool hatEnabled );
84  bool hatLinesEnabled() const;
85 
87  void setHatLinesOnSelectionOnly( bool selOnly );
89  bool hatLinesOnSelectionOnly() const;
90 
92  void setVisibleColor( float r, float g, float b, float a );
94  void visibleColor( float& r, float& g, float& b, float& a ) const;
95 
97  void setBlockedColor( float r, float g, float b, float a );
99  void blockedColor( float& r, float& g, float& b, float& a ) const;
100 
102  void setCircleColor( float r, float g, float b, float a );
104  void circleColor( float& r, float& g, float& b, float& a ) const;
105 
107  void setRangeInfoLabelsEnabled( bool enabled );
109  bool rangeInfoLabelsEnabled() const;
110 
112  void setRangeInfoLabelBackgroundColor( float r, float g, float b );
114  void rangeInfoLabelBackgroundColor( float& r, float& g, float& b );
115 
117  void setRangeInfoLabelBackgroundOpacity( float opacity );
119  float rangeInfoLabelBackgroundOpacity() const;
120 
122  void setRangeInfoAltChangeFieldEnabled( bool enabled );
124  bool rangeInfoAltChangeFieldEnabled() const;
125 
127  void setRangeInfoLocationFieldEnabled( bool enabled );
129  bool rangeInfoLocationFieldEnabled() const;
130 
132  void setRangeInfoHeadingFieldEnabled( bool enabled );
134  bool rangeInfoHeadingFieldEnabled() const;
135 
137  void setRangeInfoRangeFieldEnabled( bool enabled );
139  bool rangeInfoRangeFieldEnabled() const;
140 
142 
145 
146  boost::signal<void (bool)> signal_intervisibilityEnabledSet;
147  boost::signal<void (bool)> signal_leftClickMakesObjectsPermanentSet;
148  boost::signal<void (double)> signal_originIntervisibilityElevationSet;
149  boost::signal<void (double)> signal_endPointIntervisibilityElevationSet;
150  boost::signal<void (double)> signal_fanModeSamplingRateSet;
151  boost::signal<void (double)> signal_entityFanUpdateRateSet;
152  boost::signal<void (bool)> signal_hatLinesEnabledSet;
153  boost::signal<void (bool)> signal_hatLinesOnSelectionOnlySet;
154  boost::signal<void (float r, float g, float b, float a)> signal_visibleColorSet;
155  boost::signal<void (float r, float g, float b, float a)> signal_blockedColorSet;
156  boost::signal<void (float r, float g, float b, float a)> signal_circleColorSet;
157  boost::signal<void (bool)> signal_rangeInfoLabelsEnabledSet;
158  boost::signal<void (float r, float g, float b, float a)> signal_rangeInfoBackgroundColorSet;
161  boost::signal<void (bool)> signal_rangeInfoHeadingFieldEnabledChanged;
162  boost::signal<void (bool)> signal_rangeInfoRangeFieldEnabledChanged;
163 
165 
168 
170  virtual void setFromRecord( const makArchives::DtIntervisibilitySettingsRecord& rec );
171 
173  virtual void getRecord( makArchives::DtIntervisibilitySettingsRecord& rec ) const;
174 
176 
179 
181  virtual bool isAttachableObjectType( DtElementEntry::ObjectType t ) const;
182 
184  virtual bool isAttachableObjectType( DtUniqueID elementId ) const;
185 
187 
188  protected:
189 
191  template <typename ManagerClass>
192  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
193 
195  template <typename ManagerClass>
196  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
197 
200 
201  protected:
202 
205 
208 
213 
214  float myVisibleColor[4];
215  float myBlockedColor[4];
216  float myCircleColor[4];
217 
219  float myRangeInfoBackgroundColor[4];
224 
225  };
226 
227 }
228 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)