18 #include <osg/Drawable>
21 namespace SilverLining
29 class DtSilverliningGroup;
30 class DtGlRenderTexture;
31 class DtChannelManager;
72 virtual
void releaseGLObjects(osg::State* state) const;
78 void setCrepuscularRays(
bool enabled);
81 void updateCubeMaps(
bool fullRegenerate);
84 unsigned int getCubeMap(const osg::ref_ptr<const osg::Camera> camera) const;
87 unsigned int getPrimaryCubeMap() const;
90 virtual
void drawImplementation(osg::RenderInfo& renderInfo) const;
93 void setGeocentricMode(
bool mode);
97 virtual
void cleanupCloudLayer(SilverLining::Atmosphere* atm,
unsigned int layerHandle);
101 void fadeCloudsWithAltitude(
double altitudeMSL, SilverLining::
CloudLayer * layer);
102 void updateCloudAltitudes(const osg::Vec3d& localPosition, SilverLining::Atmosphere *atm);
105 void updateShader(osg::Node *node, osg::State& state, SilverLining::Atmosphere *atm) const;
106 void updateOpenGLState(osg::State &state, SilverLining::Atmosphere *atm, osg::Camera *cam) const;
107 void setIsReflectionUniform(osg::State &state, SilverLining::Atmosphere* atm,
bool isReflection) const;
110 void connectSingals();
116 virtual
void disconnectSignals();
120 virtual
void slot_environmentChanged(const std::
string& name);
122 bool computeHeightAboveTerrain(const osg::Vec3d& localPosition,
double& heightOfGround);
123 void updateCloudLayerAltitudes(SilverLining::Atmosphere* atm);
129 virtual
void updateDepthTexture(osg::RenderInfo& renderInfo) const;
132 virtual
void unbindDepthTexture(osg::RenderInfo& renderInfo) const;
134 virtual
void updateSoftnessAndSmoothCloudsFromImGui() const;
136 virtual
CubeMapData* getOrCreateCubeMapData(osg::Camera* camera, const osg::Vec3d& camPos) const;
139 mutable std::vector<
unsigned int> myUserShaderVector;
144 bool myCrepuscularRays;
145 bool myGeocentricFlag;
147 osg::Vec3d myLastHOTUpdatePos;
148 bool myForceHOTUpdate;
153 bool mySkipUpdateAltitudes;
154 std::map<SilverLining::
CloudLayer *,
double> myOriginalAltitudesMap;
157 mutable MapCameraToCubeMapData myCubeMapDataMap;
158 virtual
void flushInvalidCamerasForCubeMap(
void);
160 mutable
unsigned int myMutableLastFrameNum;
161 mutable
unsigned int myMutablePrimaryCubeMap;
165 mutable osg::ref_ptr<osg::Uniform> myMutableSoftnessUniform;
166 mutable osg::ref_ptr<osg::Uniform> myMutableInvPersMatrixUniform;
167 mutable osg::ref_ptr<osg::Uniform> myMutablePersMatrixUniform;
168 mutable osg::ref_ptr<osg::Uniform> myMutableViewportUniform;
169 mutable osg::ref_ptr<osg::Uniform> myMutableIsReflectionUniform;
170 mutable osg::ref_ptr<osg::Uniform> myMutableViewMatrixInverseUniform;
171 mutable osg::ref_ptr<osg::Uniform> myMutableIsSunMoonDiskUniform;
172 mutable osg::ref_ptr<osg::Uniform> myMutableIsStarUniform;
175 osg::ref_ptr<osg::StateSet> myStateSet;
178 mutable
bool myEnableSmoothClouds;
179 mutable
float mySmoothCloudsDist;
180 mutable
double myLastImGuiSimTime;
182 unsigned long int myNextCameraID;
184 MapOsgCamerasToEnvMapCameraIDs myMapOsgCamerasToEnvMapCameraIDs;
185 virtual
void flushInvalidCamerasForEnvMap(
void);
186 virtual
unsigned long int getOrCreateCameraHandleForEnvMap(const osg::RenderInfo& renderInfo);
A drawable for drawing the cloud layer.
Definition: DtCloudDrawable.h:36
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtDe class.
bool myNeedsFullRegen
Definition: DtCloudDrawable.h:53
A group node which adds a silver-lining sky and will light all Children with the proper lighting para...
Definition: DtSilverliningGroup.h:63
unsigned int myID
Definition: DtCloudDrawable.h:50
The abstract Channel Class.
Definition: DtChannel.h:29
unsigned int myCurrentUpdateFace
Definition: DtCloudDrawable.h:51
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
osg::Vec3d myLastUpdatePos
Definition: DtCloudDrawable.h:49
Definition: DtCloudDrawable.h:47
std::map< osg::observer_ptr< const osg::Camera >, unsigned long int > MapOsgCamerasToEnvMapCameraIDs
Definition: DtCloudDrawable.h:183
Base class for handling DtChannels.
Definition: DtChannelManager.h:35
std::map< osg::observer_ptr< const osg::Camera >, CubeMapData * > MapCameraToCubeMapData
Definition: DtCloudDrawable.h:156
Base class to provide boost signal/slot management.
CubeMapUpdateState myUpdateState
Definition: DtCloudDrawable.h:52
const char int mode
Definition: ioapi.h:38
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
CubeMapUpdateState
Definition: DtCloudDrawable.h:40
Definition: vrfObjectManipulationHandlerBaseClass.h:67