VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtEntitySettingsRecord.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2015 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 namespace makArchives
15 {
16 
20  {
21  public:
22  enum BuoyancyCullType { BuoyancyCullNone, BuoyancyCullFrontFacing, BuoyancyCullFrustum };
23 
26 
29 
31  DtEntitySettingsRecord& operator = ( const DtEntitySettingsRecord& obj );
32 
35 
38 
39  bool groundClampingEnabled() const;
40  void setGroundClampingEnabled( bool enabled );
41 
42  float groundClampingRadiusScale() const;
43  void setGroundClampingRadiusScale( float scale );
44 
45  bool groundClampingCullingEnabled() const;
46  void setGroundClampingCullingEnabled( bool enabled );
47 
48  bool orientationClampingEnabled() const;
49  void setOrientationClampingEnabled( bool enabled );
50 
51  bool lifeformsUprightEnabled() const;
52  void setLifeformsUprightEnabled( bool enabled );
53 
54  bool smoothingEnabled() const;
55  void setSmoothingEnabled( bool enabled );
56 
57  float smoothingPeriod() const;
58  void setSmoothingPeriod( float period );
59 
60  bool showEntityLabels() const;
61  void setShowEntityLabels( bool show );
62 
63  bool rotateEntitySymbols() const;
64  void setRotateEntitySymbols( bool show );
65 
66  bool showStealthsEnabled() const;
67  void setShowStealthsEnabled( bool enabled );
68 
69  bool infoPopupsOnSelectEnabled() const;
70  void setInfoPopupsOnSelectEnabled( bool enabled );
71 
72  bool fireDetonateLinesEnabled() const;
73  void setFireDetonateLinesEnabled( bool enabled );
74 
75  bool entityEmitterVolumesEnabled() const;
76  void setEntityEmitterVolumesEnabled( bool enabled );
77 
78  bool entityHeightAboveTerrainLinesEnabled() const;
79  void setEntityHeightAboveTerrainLinesEnabled( bool enabled );
80 
81  unsigned entityHeightAboveTerrainMode() const;
82  void setEntityHeightAboveTerrainMode( unsigned mode );
83 
84  bool entitySimDataEnabled() const;
85  void setEntitySimDataEnabled( bool enabled );
86 
87  unsigned colorizedModelColorType() const;
88  void setColorizedModelColorType( unsigned type );
89 
90  float entityIconScale() const;
91  void setEntityIconScale( float scale );
92 
93  void setHideEmbarked2DObjects( bool b );
94  bool hideEmbarked2DObjects() const;
95 
96  bool entityOceanWakesEnabled() const;
97  void setEntityOceanWakesEnabled( bool enabled );
98 
99  bool entityHullSprayEffectsEnabled() const;
100  void setEntityHullSprayEffectsEnabled( bool enabled );
101 
102  bool entityBuoyancyModelsEnabled() const;
103  void setEntityBuoyancyModelsEnabled( bool enabled );
104 
105  float buoyancyDefaultLODDistance() const;
106  void setBuoyancyDefaultLODDistance( float distance );
107 
108  float wakeDefaultLODDistance() const;
109  void setWakeDefaultLODDistance( float distance );
110 
111  bool buoyAndBeaconIconsEnabled() const;
112  void setBuoyAndBeaconIconsEnabled( bool enabled );
113 
114  unsigned int heightAboveTerrainPeriod() const;
115  void setHeightAboveTerrainPeriod( unsigned int period );
116 
120  float buoyancyMinimumCullDistance() const;
121 
123  void setBuoyancyMinimumCullDistance( float distance );
124 
125  void setBuoyancyCullType( BuoyancyCullType cullType );
126  BuoyancyCullType buoyancyCullType() const;
127 
129 
130  protected:
131 
132  friend class boost::serialization::access;
133 
137  template<class Archive>
138  void serialize(Archive & ar, const unsigned int version)
139  {
140  if ( version <= 6 )
141  {
142  //Deprecated
143  bool myTrailingEffectsEnabled;
144  bool myTrackHistoryEnabled;
145  bool myDecalEffectsEnabled;
146  ar & BOOST_SERIALIZATION_NVP(myTrailingEffectsEnabled);
147  ar & BOOST_SERIALIZATION_NVP(myTrackHistoryEnabled);
148  ar & BOOST_SERIALIZATION_NVP(myDecalEffectsEnabled);
149  }
150  ar & BOOST_SERIALIZATION_NVP(myGroundClampingEnabled);
151  ar & BOOST_SERIALIZATION_NVP(myGroundClampingRadiusScale);
152  ar & BOOST_SERIALIZATION_NVP(mySmoothingEnabled);
153  ar & BOOST_SERIALIZATION_NVP(mySmoothingPeriod);
154  ar & BOOST_SERIALIZATION_NVP(myOrientationClampingEnabled);
155  ar & BOOST_SERIALIZATION_NVP(myLifeformsUprightEnabled);
156 
157  if(version >= 1 && version != 7 )
158  {
159  ar & BOOST_SERIALIZATION_NVP(myShowEntityLabels);
160  }
161 
162  if (version >= 2)
163  {
164  ar & BOOST_SERIALIZATION_NVP(myShowStealthsEnabled);
165  }
166 
167  if (version >= 3)
168  {
169  ar & BOOST_SERIALIZATION_NVP(myInfoPopupsOnSelectEnabled);
170  }
171 
172  if (version >= 4 && version != 7 )
173  {
174  ar & BOOST_SERIALIZATION_NVP(myFireDetonateLinesEnabled);
175  }
176 
177  if (version >= 5)
178  {
179  if ( version != 7 )
180  {
181  ar & BOOST_SERIALIZATION_NVP(myEntityHeightAboveTerrainLinesEnabled);
182  }
183  ar & BOOST_SERIALIZATION_NVP(myEntityHeightAboveTerrainMode);
184  }
185 
186  if (version >=6)
187  {
188  ar& BOOST_SERIALIZATION_NVP(myEntitySimDataEnabled);
189  }
190 
191  if (version >= 9 )
192  {
193  ar & BOOST_SERIALIZATION_NVP(myColorizedModelColorType);
194  }
195 
196  if (version == 10 )
197  {
198  int myEntityIconScale = 1;
199  ar & BOOST_SERIALIZATION_NVP(myEntityIconScale);
200  myEntityIconScaleFactor =
201  pow(1.25, ((float)myEntityIconScale / 10.0) - 5);
202  }
203 
204  if (version >= 11 )
205  {
206  ar & BOOST_SERIALIZATION_NVP(myHideEmbarked2DObjects);
207  }
208 
209  if (version >= 12 )
210  {
211  ar & BOOST_SERIALIZATION_NVP(myEntityIconScaleFactor);
212  }
213  if ( version >= 13 )
214  {
215  ar & BOOST_SERIALIZATION_NVP(myEntitySensorVolumesEnabled);
216  }
217  if ( version >= 14 )
218  {
219  ar & BOOST_SERIALIZATION_NVP(myGroundClampingCullingEnabled);
220  }
221  else
222  {
223  myGroundClampingCullingEnabled = ( myGroundClampingRadiusScale < 100 );
224  }
225  if ( version >= 15 )
226  {
227  ar & BOOST_SERIALIZATION_NVP(myRotateEntitySymbols);
228  }
229  if ( version >= 16 )
230  {
231  ar & BOOST_SERIALIZATION_NVP(myOceanWakesEnabled);
232  ar & BOOST_SERIALIZATION_NVP(myHullSprayEffectsEnabled);
233  ar & BOOST_SERIALIZATION_NVP(myBuoyancyModelsEnabled);
234  }
235  if ( version >= 17 )
236  {
237  ar & BOOST_SERIALIZATION_NVP( myBuoyAndBeaconIconsEnabled );
238  }
239  if ( version >= 18 )
240  {
241  ar & BOOST_SERIALIZATION_NVP( myHeightAboveTerrainPeriod );
242  }
243  if ( version >= 19 )
244  {
245  ar & BOOST_SERIALIZATION_NVP( myBuoyancyDefaultLODDistance );
246  }
247  if ( version >= 20 )
248  {
249  ar & BOOST_SERIALIZATION_NVP( myBuoyancyMinimumCullDistance );
250  ar & BOOST_SERIALIZATION_NVP( myBuoyancyCullType );
251  }
252  if ( version >= 21 )
253  {
254  ar & BOOST_SERIALIZATION_NVP( myWakeDefaultLODDistance );
255  }
256 
257  }
258 
259  protected:
260 
275  bool myEntitySensorVolumesEnabled; // also referred to as 'EmitterVolumes'.
289  };
290 
291 }
292 

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)