VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtForestSettingsManager.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 
16 
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtForestSettingsSignaler;
23  class DtForestEnvControllerAgent;
24 
29  : public DtBaseSettingsManager<makArchives::DtForestSettingsRecord>
30  {
31  public:
32 
34  static DtForestSettingsManager& instance( DtDe& de );
35 
36  public:
37 
39  virtual ~DtForestSettingsManager();
40 
41  public:
44 
45  virtual void setFarClippingPlane(float farPlane);
46  virtual float farClippingPlane() const;
47 
48  virtual void set3DLodDistances(float fHigh, float fLow);
49  virtual float highDetail3dDistance() const;
50  virtual float lowDetail3dDistance() const;
51 
52  virtual void setBillboardDistances(float fStart, float fEnd);
54  virtual void setBillboardFadeOutRange(float range);
55  virtual float billboardStartDistance() const;
56  virtual float billboardEndDistance() const;
57 
59  virtual float billboardFadeOutRange() const;
60 
61  virtual void setTreesEnabled(bool enabled);
62  virtual bool treesEnabled() const;
63 
64  virtual void setBillboardsEnabled(bool enable);
65  virtual bool billboardsEnabled() const;
66 
67  virtual void setTreeMeshesEnabled(bool enable);
68  virtual bool treesMeshesEnabled() const;
69 
70  virtual void setAmbientScalar(float val);
71  virtual float ambientScalar() const;
72 
73  virtual void setDiffuseScalar(float val);
74  virtual float diffuseScalar() const;
75 
76  virtual void setSpecularScalar(float val);
77  virtual float specularScalar() const;
78 
79  virtual void setTransmissionScalar(float val);
80  virtual float transmissionScalar() const;
81 
82  virtual void setAlphaScalar(float val);
83  virtual float alphaScalar() const;
84 
86  virtual bool receiveShadows() const;
88  virtual void setReceiveShadows(bool enable);
90 
92 
95 
97  virtual void setFromRecord( const makArchives::DtForestSettingsRecord& rec );
98 
100  virtual void getRecord( makArchives::DtForestSettingsRecord& rec ) const;
101 
103 
104  protected:
105 
108 
109  protected:
110 
112  template <typename ManagerClass>
113  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
114 
116  template <typename ManagerClass>
117  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
118 
121  virtual void slot_displayEngineAdded();
122 
123  virtual void lazyCreateAgent(void);
124 
129  virtual bool applyFactoryOverrides(makArchives::DtForestSettingsRecord& rec) const;
130 
131  protected:
132 
135  DtForestEnvControllerAgent* myForestEnvControllerAgent;
136  };
137 
139  {
140  public:
141  static DtForestSettingsSignaler& instance(DtDe&);
142 
143  virtual ~DtForestSettingsSignaler();
144 
145  boost::signalslib::signal<void (float)> signal_farClippingPlaneSet;
146  boost::signalslib::signal<void (float, float)> signal_3DLodDistancesSet;
147  boost::signalslib::signal<void (float, float)> signal_BillboardDistancesSet;
148  boost::signalslib::signal<void (bool)> signal_TreesEnabled;
149  boost::signalslib::signal<void (bool)> signal_BillboardsEnabled;
150  boost::signalslib::signal<void (bool)> signal_TreeMeshesEnabled;
151 
152  boost::signalslib::signal<void (float)> signal_AmbientScalarSet;
153  boost::signalslib::signal<void (float)> signal_DiffuseScalarSet;
154  boost::signalslib::signal<void (float)> signal_SpecularScalarSet;
155  boost::signalslib::signal<void (float)> signal_TransmissionScalarSet;
156  boost::signalslib::signal<void (float)> signal_AlphaScalarSet;
157  boost::signalslib::signal<void (bool)> signal_receiveShadowsSet;
158 
159  boost::signalslib::signal<void(float)> signal_billboardFadeOutRangeSet;
160  protected:
162  };
163 
164 }
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:291
DtForestSettingsSignaler & mySignaler
Definition: DtForestSettingsManager.h:134
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(float)> signal_billboardFadeOutRangeSet
Definition: DtForestSettingsManager.h:159
boost::signalslib::signal< void(bool)> signal_TreesEnabled
Definition: DtForestSettingsManager.h:148
DtForestEnvControllerAgent * myForestEnvControllerAgent
Definition: DtForestSettingsManager.h:135
boost::signalslib::signal< void(bool)> signal_receiveShadowsSet
Definition: DtForestSettingsManager.h:157
boost::signalslib::signal< void(bool)> signal_TreeMeshesEnabled
Definition: DtForestSettingsManager.h:150
Record of SpeedTree rendering configuration.
Definition: DtForestSettingsRecord.h:20
boost::signalslib::signal< void(float)> signal_DiffuseScalarSet
Definition: DtForestSettingsManager.h:153
A manager for forest settings (Master Display Engines only). This manager makes use of a DtForestEnvC...
Definition: DtForestSettingsManager.h:28
boost::signalslib::signal< void(float)> signal_TransmissionScalarSet
Definition: DtForestSettingsManager.h:155
boost::signalslib::signal< void(bool)> signal_BillboardsEnabled
Definition: DtForestSettingsManager.h:149
boost::signalslib::signal< void(float)> signal_SpecularScalarSet
Definition: DtForestSettingsManager.h:154
boost::signalslib::signal< void(float)> signal_AlphaScalarSet
Definition: DtForestSettingsManager.h:156
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
makArchives::DtForestSettingsRecord mySettingsRecord
Definition: DtForestSettingsManager.h:133
boost::signalslib::signal< void(float, float)> signal_BillboardDistancesSet
Definition: DtForestSettingsManager.h:147
Definition: DtForestSettingsManager.h:138
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:879
boost::signalslib::signal< void(float, float)> signal_3DLodDistancesSet
Definition: DtForestSettingsManager.h:146
Base class to provide boost signal/slot management.
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(float)> signal_farClippingPlaneSet
Definition: DtForestSettingsManager.h:145
Contains makArchives::DtForestSettingsRecord class.
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(float)> signal_AmbientScalarSet
Definition: DtForestSettingsManager.h:152
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)