VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtShadowSettingsManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2014 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtShadowSettingsObjectAgent.hpp>
18 #include <string>
19 #include <map>
20 
21 namespace makVrv
22 {
23  class DtShadowSettingsManager;
24 
26  : public DtRecordSettingsBackup< DtBaseSettingsManager<makArchives::DtShadowSettingsCollectionRecord>,
27  makArchives::DtShadowSettingsCollectionRecord >
28  {
29  public:
30 
32  const std::string& name, const std::string& displayName);
33 
35 
36  virtual void restoreSelected(const DtSettingsBackup*);
37 
38  virtual int currentSelectedShadowSettings() const;
39  virtual void setCurrentSelectedShadowSettings(int quality);
40 
41  protected:
43  };
44 
45  class DtDe;
47 
53  : public DtBaseSettingsManager<makArchives::DtShadowSettingsCollectionRecord>
54  {
55  public:
56 
58  static DtShadowSettingsManager& instance(DtDe& de);
59 
61  virtual ~DtShadowSettingsManager();
62 
64  virtual void createShadowSettings();
65 
68  int lookupShadowQuality(const std::string& stringKey) const;
69 
71  const std::string* findShadowQualityStringKey(int quality) const;
72 
74  void setName(int quality, const std::string& name);
75 
77  std::string name(int quality) const;
78 
80  void setEntitiesCastsShadows(int quality, bool castShadows);
81 
83  bool entitiesCastsShadows(int quality) const;
84 
86  bool entitiesCastsShadows() const;
87 
89  void setPropsCastsShadows(int quality, bool castShadows);
90 
92  bool propsCastsShadows(int quality) const;
93 
95  bool propsCastsShadows() const;
96 
98  void setTerrainCastsShadows(int quality, bool castShadows);
99 
101  bool terrainCastsShadows(int quality) const;
102 
104  bool terrainCastsShadows() const;
105 
107  void setCloudsCastsShadows(int quality, bool castShadows);
108 
110  bool cloudsCastsShadows(int quality) const;
111 
113  bool cloudsCastsShadows() const;
114 
116  void setVisualizeShadows(int quality, bool visualizeShadows);
117 
119  bool visualizeShadows(int quality) const;
120 
122  bool visualizeShadows() const;
123 
125  void setNumberOfSplits(int quality, unsigned int numSplits);
126 
128  unsigned int numberOfSplits(int quality) const;
129 
131  unsigned int numberOfSplits() const;
132 
134  void setUseFrontFaceCulling(int quality, bool useFrontFaceCulling);
135 
137  bool useFrontFaceCulling(int quality) const;
138 
140  bool useFrontFaceCulling() const;
141 
144  void setUseCachedFarCascade(int quality, bool useCachedFarCascade);
145 
147  bool useCachedFarCascade() const;
148 
150  void setFarCascadeUpdateFrequency(int quality, double update_freq);
151 
153  double farCascadeUpdateFrequency();
154 
156  void setAdjustFarAndFlagsBasedOnHAT(int quality, bool adaptive);
157 
159  bool adjustFarAndFlagsBasedOnHAT();
160 
162  void setUsePolygonOffset(int quality, bool usePolygonOffset);
163 
165  bool usePolygonOffset(int quality) const;
166 
168  bool usePolygonOffset() const;
169 
171  void setPolygonOffset(int quality, unsigned int splitIndex, float factor, float units);
172 
174  float polygonOffsetFactor(int quality, unsigned int splitIndex) const;
175 
177  float polygonOffsetFactor(unsigned int splitIndex) const;
178 
180  float polygonOffsetUnits(int quality, unsigned int splitIndex) const;
181 
183  float polygonOffsetUnits(unsigned int splitIndex) const;
184 
186  void setSpotLightShadowMapSize(int quality, unsigned int size);
187 
189  unsigned int spotLightShadowMapSize(int quality) const;
190 
192  unsigned int spotLightShadowMapSize() const;
193 
195  void setGlobalLightShadowMapSize(int quality, unsigned int size);
196 
198  unsigned int globalLightShadowMapSize() const;
199 
201  unsigned int globalLightShadowMapSize(int quality) const;
202 
204  void setUseMaximumViewDistance(int quality, bool useMaximumViewDistance);
205 
207  bool useMaximumViewDistance(int quality) const;
208 
210  bool useMaximumViewDistance() const;
211 
213  void setMaximumViewDistance(int quality, double viewDistance);
214 
216  double maximumViewDistance(int quality) const;
217 
219  double maximumViewDistance() const;
220 
222  void setSplitNearDistanceMinimumBias(int quality, double bias);
223 
225  double splitNearDistanceMinimumBias(int quality) const;
226 
228  double splitNearDistanceMinimumBias() const;
229 
231  void setSplitNearDistanceMaximumBias(int quality, double bias);
232 
234  double splitNearDistanceMaximumBias(int quality) const;
235 
237  double splitNearDistanceMaximumBias() const;
238 
240  void setSplitFarDistanceBias(int quality, double bias);
241 
243  double splitFarDistanceBias(int quality) const;
244 
246  double splitFarDistanceBias() const;
247 
249  void setShadowAmbientFactor(int quality, float shadowAmbientFactor);
250 
252  float shadowAmbientFactor(int quality) const;
253 
255  float shadowAmbientFactor() const;
256 
258  void setShadowStabilizationScheme(int quality, makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme);
259 
261  makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme(int quality) const;
262 
264  makArchives::DtShadowSettingsRecord::ShadowStabilizationScheme shadowStabilizationScheme() const;
265 
267  void setAntiFlickerQuantizationFactor(int quality, float antiFlickerQuantizationFactor);
268 
270  float antiFlickerQuantizationFactor(int quality) const;
271 
273  float antiFlickerQuantizationFactor() const;
274 
276  void setSplitDistanceComputeScheme(int quality, makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme);
277 
279  makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme(int quality) const;
280 
282  makArchives::DtShadowSettingsRecord::SplitDistanceComputeScheme splitDistanceComputeScheme() const;
283 
285  void setMixedSplitInterpolationValue(int quality, double interp);
286 
288  double mixedSplitInterpolationValue(int quality) const;
289 
291  double mixedSplitInterpolationValue() const;
292 
294  void setSplitSelectionScheme(int quality, makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme);
295 
297  makArchives::DtShadowSettingsRecord::SplitSelectionScheme splitSelectionScheme(int quality) const;
298 
301 
302 
304  void setDataStorageScheme(int quality, makArchives::DtShadowSettingsRecord::DataStorageScheme dataStorageScheme);
305 
307  makArchives::DtShadowSettingsRecord::DataStorageScheme dataStorageScheme(int quality) const;
308 
311 
313  void setPreFilteringScheme(int quality, makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme);
314 
316  makArchives::DtShadowSettingsRecord::PreFilteringScheme preFilteringScheme(int quality) const;
317 
320 
322  void setFilteringScheme(int quality, makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme);
323 
325  makArchives::DtShadowSettingsRecord::FilteringScheme filteringScheme(int quality) const;
326 
329 
331  void setPoissonDiskSamplingScheme(int quality, makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme);
332 
334  makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme(int quality) const;
335 
337  makArchives::DtShadowSettingsRecord::PoissonDiskSamplingScheme poissonDiskSamplingScheme() const;
338 
340  void setUseViewportMulticast(int quality, bool useViewportMulticast);
341 
343  bool useViewportMulticast() const;
344 
346  void setNumPersistentPassesPerCascade(int quality, unsigned int numPasses);
347 
349  unsigned int numPersistentPassesPerCascade(int quality) const;
350 
352  unsigned int numPersistentPassesPerCascade() const;
353 
355  void setNumAdditionalPassesPerCascade(int quality, unsigned int numPasses);
356 
358  unsigned int numAdditionalPassesPerCascade(int quality) const;
359 
361  unsigned int numAdditionalPassesPerCascade() const;
362 
364  void setPcfFilterWidth(int quality, unsigned int pcfFilterWidth);
365 
367  unsigned int pcfFilterWidth(int quality) const;
368 
370  unsigned int pcfFilterWidth() const;
371 
373  void setBlendCascadesBoundaries(int quality, bool blendCascadesBoundaries);
374 
376  bool blendCascadesBoundaries(int quality) const;
377 
379  bool blendCascadesBoundaries() const;
380 
382  void setUseSDSM(int quality, bool useSDSM);
383 
385  bool useSDSM(int quality) const;
386 
388  bool useSDSM() const;
389 
391  void setSDSMReadBackLatency(int quality, unsigned int sdsmReadBackLatency);
392 
394  unsigned int sdsmReadBackLatency(int quality) const;
395 
397  unsigned int sdsmReadBackLatency() const;
398 
400  void setUseCameraDepthBufferForSDSM(int quality, bool useCameraDepthBufferForSDSM);
401 
403  bool useCameraDepthBufferForSDSM(int quality) const;
404 
406  bool useCameraDepthBufferForSDSM() const;
407 
409  void setEVSMPositiveExponent(int quality, double evsmPositiveExponent);
410 
412  double evsmPositiveExponent(int quality) const;
413 
415  double evsmPositiveExponent() const;
416 
418  void setEVSMNegativeExponent(int quality, double evsmNegativeExponent);
419 
421  double evsmNegativeExponent(int quality) const;
422 
424  double evsmNegativeExponent() const;
425 
427  void setVSMMininumVariance(int quality, double vsmMininumVariance);
428 
430  double vsmMininumVariance(int quality) const;
431 
433  double vsmMininumVariance() const;
434 
436  void setESMDarkeningFactor(int quality, double esmDarkeningFactor);
437 
439  double esmDarkeningFactor(int quality) const;
440 
442  double esmDarkeningFactor() const;
443 
445  void setDirty(int quality, bool dirty);
446 
448  bool dirty(int quality) const;
449 
451  bool dirty() const;
452 
454  void setCurrentPolygonOffsetCascade(unsigned int cascade);
455 
457  unsigned int currentPolygonOffsetCascade() const;
458 
461 
463  virtual void loadDefaults();
464 
468 
470  virtual void importSettings(const std::string& filePath);
471 
473  virtual void setFromRecord(const makArchives::DtShadowSettingsCollectionRecord& record);
474 
476  virtual void setShadowSettingsFromRecord(const makArchives::DtShadowSettingsCollectionRecord& record,
477  int quality);
478 
480  virtual void getRecord(makArchives::DtShadowSettingsCollectionRecord& record) const;
481 
483  virtual void getShadowSettingsFromRecord(makArchives::DtShadowSettingsCollectionRecord& record,
484  int quality) const;
485 
488  virtual DtShadowSettingsCollectionBackup* shadowSettingsCollectionBackup();
490 
491  public:
492 
494  boost::signal<void(int, const std::string&)> shadowSettingsNameChanged;
495 
497  boost::signal<void(int, int)> shadowSettingsEntitiesCastsShadowsChanged;
498 
500  boost::signal<void(int, int)> shadowSettingsPropsCastsShadowsChanged;
501 
503  boost::signal<void(int, int)> shadowSettingsTerrainCastsShadowsChanged;
504 
506  boost::signal<void(int, int)> shadowSettingsCloudsCastsShadowsChanged;
507 
509  boost::signal<void(int, int)> shadowSettingsVisualizeShadowsChanged;
510 
512  boost::signal<void(int, int)> shadowSettingsNumberOfSplitsChanged;
513 
515  boost::signal<void(int, bool)> shadowSettingsUseFrontFaceCullingChanged;
516 
518  boost::signal<void(int, bool)> shadowSettingsUseCachedFarCascadeChanged;
519 
521  boost::signal<void(int, double)> shadowSettingsFarCascadeUpdateFreqChanged;
522 
524  boost::signal<void(int, bool)> shadowSettingsAdjustFarAndFlagsBasedOnHATChanged;
525 
527  boost::signal<void(int, bool)> shadowSettingsUseViewportMulticastChanged;
528 
530  boost::signal<void(int, bool)> shadowSettingsUsePolygonOffsetChanged;
531 
533  boost::signal<void(int, unsigned int, float)> shadowSettingsPolygonOffsetFactorChanged;
534 
536  boost::signal<void(int, unsigned int, float)> shadowSettingsPolygonOffsetUnitsChanged;
537 
539  boost::signal<void(int, int)> shadowSettingsSpotLightShadowMapSizeChanged;
540 
542  boost::signal<void(int, int)> shadowSettingsGlobalLightShadowMapSizeChanged;
543 
545  boost::signal<void(int, bool)> shadowSettingsUseMaximumViewDistanceChanged;
546 
548  boost::signal<void(int, double)> shadowSettingsMaximumViewDistanceChanged;
549 
551  boost::signal<void(int, double)> shadowSettingsSplitNearDistanceMinimumBiasChanged;
552 
554  boost::signal<void(int, double)> shadowSettingsSplitNearDistanceMaximumBiasChanged;
555 
557  boost::signal<void(int, double)> shadowSettingsSplitFarDistanceBiasChanged;
558 
560  boost::signal<void(int, float)> shadowSettingsShadowFactorChanged;
561 
563  boost::signal<void(int, int)> shadowSettingsShadowStabilizationSchemeChanged;
564 
566  boost::signal<void(int, float)> shadowSettingsAntiFlickerQuantizationFactorChanged;
567 
569  boost::signal<void(int, int)> shadowSettingsSplitDistanceComputeSchemeChanged;
570 
572  boost::signal<void(int, double)> shadowSettingsMixedSplitInterpolationValueChanged;
573 
575  boost::signal<void(int, int)> shadowSettingsSplitSelectionSchemeChanged;
576 
578  boost::signal<void(int, int)> shadowSettingsDataStorageSchemeChanged;
579 
581  boost::signal<void(int, int)> shadowSettingsPreFilteringSchemeChanged;
582 
584  boost::signal<void(int, int)> shadowSettingsFilteringSchemeChanged;
585 
587  boost::signal<void(int, int)> shadowSettingsPoissonDiskSamplingSchemeChanged;
588 
590  boost::signal<void(int, unsigned int)> shadowSettingsNumPersistentPassesPerCascadeChanged;
591 
593  boost::signal<void(int, unsigned int)> shadowSettingsNumAdditionalPassesPerCascadeChanged;
594 
596  boost::signal<void(int, unsigned int)> shadowSettingsPcfFilterWidthChanged;
597 
599  boost::signal<void(int, bool)> shadowSettingsBlendCascadesBoundariesChanged;
600 
602  boost::signal<void(int, bool)> shadowSettingsUseSDSMChanged;
603 
605  boost::signal<void(int, unsigned int)> shadowSettingsSDSMReadBackLatencyChanged;
606 
608  boost::signal<void(int, bool)> shadowSettingsUseCameraDepthBufferForSDSMChanged;
609 
611  boost::signal<void(int, double)> shadowSettingsEVSMPositiveExponentChanged;
612 
614  boost::signal<void(int, double)> shadowSettingsEVSMNegativeExponentChanged;
615 
617  boost::signal<void(int, double)> shadowSettingsVSMMininumVarianceChanged;
618 
620  boost::signal<void(int, double)> shadowSettingsESMDarkeningFactorChanged;
621 
623  boost::signal<void(int, bool)> shadowSettingsDirtyChanged;
624 
626  boost::signal<void(int)> shadowSettingsAdded;
627 
629  boost::signal<void(int)> shadowSettingsToBeRemoved;
630 
631  protected:
634  void slot_slaveAdded(const makVrv::DtDeRecord& igRecord);
635 
636  protected:
637 
639  template <typename ManagerClass>
640  friend ManagerClass& defaultManagerInstanceFunction(DtDe&, bool);
641 
643  template <typename ManagerClass>
644  friend void defaultManagerRegisterInstanceFunction(DtDe&, ManagerClass*);
645 
648 
651 
654  DtShadowSettingsObjectAgent* getShadowSettingsObjectAgentPtr(int quality) const;
655 
658  virtual void addShadowSettingsObjectAgent(int quality, const std::string& stringKey, DtShadowSettingsObjectAgent* agent);
659 
663  virtual void createShadowSettings(int quality, const std::string& stringKey);
664 
666  virtual void removeShadowQuality(int quality);
667 
669  virtual void clear();
670 
671  virtual void initializeBackup();
672 
673  protected:
674 
676 
678 
679  std::string myName;
680 
682 
684 
686  typedef std::map<int, DtShadowSettingsObjectAgent*> ShadowSettingsObjectAgents;
687 
689  typedef std::map<std::string, int> ShadowSettingsObjectAgentsMap;
690 
692 
693  // The map of visual modes (from id to DtObserverMode)
695 
696  // map from name to id
698 
699  };
700 
701 
705  {
706  public:
707 
710 
713 
716  static DtShadowSettingsManagerCreator& instance(DtDe& de);
717 
719  virtual DtShadowSettingsManager* create(DtDe&);
720 
721  };
722 
723 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)