19 #include <osg/Drawable>
22 namespace SilverLining
26 class ThreadCameraStreamData;
31 class DtSilverliningGroup;
32 class DtGlRenderTexture;
33 class DtChannelManager;
35 class DtSilverLiningCubeMapManager;
37 class DtCoordinateSystem;
38 class DtOsgFrameTextureBlitterManager;
71 virtual osg::Object*
cloneType()
const {
return nullptr; }
75 virtual void releaseGLObjects(osg::State* state)
const;
84 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
87 virtual void setGeocentricMode(
bool mode);
91 virtual void cleanupCloudLayer(SilverLining::Atmosphere* atmosphere,
unsigned int layerHandle);
97 virtual void fadeCloudsWithAltitude(
const osg::Vec3d& osgCameraPosition,
SilverLining::CloudLayer * layer, SilverLining::ThreadCameraStreamData* tcsData);
100 virtual void fadeCloudsWithAltitude(
const osg::Vec3d& osgCameraPosition, SilverLining::Atmosphere* atmosphere, SilverLining::ThreadCameraStreamData* tcsData);
103 virtual void updateCloudAltitudes(
const osg::Vec3d& osgCameraPosition, SilverLining::Atmosphere* atmosphere, SilverLining::ThreadCameraStreamData* tcsData);
106 virtual void updateShader(osg::Node *node, osg::State& state, SilverLining::Atmosphere* atmosphere, SilverLining::ThreadCameraStreamData* tcsData)
const;
107 virtual void updateOpenGLState(osg::State &state, SilverLining::Atmosphere* atmosphere, osg::Camera* osgCamera, SilverLining::ThreadCameraStreamData* tcsData)
const;
108 virtual void setIsReflectionUniform(
const osg::State &state, SilverLining::Atmosphere* atm,
bool isReflection, SilverLining::ThreadCameraStreamData* tcsData)
const;
111 virtual void connectSingals();
114 virtual void initUniforms();
117 virtual void disconnectSignals();
121 virtual void slot_environmentChanged(
const std::string& name);
124 virtual bool computeHeightAboveTerrain(
const osg::Vec3d& localPosition,
double& heightOfGround)
const;
127 virtual void updateCloudLayerAltitudes(SilverLining::Atmosphere* atmosphere, SilverLining::ThreadCameraStreamData* tcsData);
130 virtual void updateCubeMap(SilverLining::Atmosphere* atmosphere, SilverLining::ThreadCameraStreamData* tcsData,
const osg::Camera* osgCamera,
const osg::Vec3d& osgCameraPosition
131 , osg::State& state);
136 virtual bool updateDepthTextureIfNecessary(osg::RenderInfo& renderInfo,
137 SilverLining::Atmosphere* atmosphere)
const;
140 virtual bool anyLayerNeedsDepthTexture(
void)
const;
143 virtual void unbindDepthTexture(osg::RenderInfo& renderInfo)
const;
145 virtual void updateSoftnessAndSmoothCloudsFromImGui()
const;
148 virtual void slot_coordinateSystemChanged();
osg::ref_ptr< osg::Uniform > myMutableViewportUniform
Definition: DtCloudDrawable.h:175
virtual osg::Object * clone(const osg::CopyOp ©op) const
Definition: DtCloudDrawable.h:72
DtOsgFrameTextureBlitterManager & myFrameTextureBlitterManager
Definition: DtCloudDrawable.h:201
osg::ref_ptr< osg::Uniform > myMutableViewMatrixInverseUniform
Definition: DtCloudDrawable.h:177
DtDe & myDe
Definition: DtCloudDrawable.h:157
std::vector< unsigned int > myUserShaderVector
Definition: DtCloudDrawable.h:154
bool myForceHOTUpdate
Definition: DtCloudDrawable.h:162
DtSilverliningGroup * myParent
Definition: DtCloudDrawable.h:156
A drawable for drawing the cloud layer.
Definition: DtCloudDrawable.h:52
osg::ref_ptr< osg::Uniform > myMutableSoftnessUniform
mutable due to osg drawImplementation limitations. Used to setup uniforms so they the opengl calls ar...
Definition: DtCloudDrawable.h:172
bool mySkipUpdateAltitudes
This flag is used to skip updating the altitude when an environment changed, since the actual change ...
Definition: DtCloudDrawable.h:167
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
DtIntersector is an abstract class that provides the interface for requesting intersections with the ...
Definition: DtIntersector.h:25
osg::ref_ptr< osg::Uniform > myMutableIsStarUniform
Definition: DtCloudDrawable.h:179
double myHOT
Definition: DtCloudDrawable.h:163
DtSignalConnectionManager myConnections
Definition: DtCloudDrawable.h:193
Contains makVrv::DtDe class.
osg::Vec3d myLastHOTUpdatePos
Definition: DtCloudDrawable.h:161
A group node which adds a silver-lining sky and will light all Children with the proper lighting para...
Definition: DtSilverliningGroup.h:82
virtual osg::Object * cloneType() const
required functions for derriving from osg::Drawable
Definition: DtCloudDrawable.h:71
double myLastImGuiSimTime
Definition: DtCloudDrawable.h:189
osg::ref_ptr< osg::Uniform > myMutableIsSunMoonDiskUniform
Definition: DtCloudDrawable.h:178
DtSilverLiningCubeMapManager * myCubeMapManager
Definition: DtCloudDrawable.h:191
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
The abstract Channel Class.
Definition: DtChannel.h:35
friend DtCloudDrawableCreator
Definition: DtCloudDrawable.h:56
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
const char * creatorTypeName< DtCloudDrawable >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtCloudDrawable.h:48
manages cube maps for multiple cameras(windows/views/channels)
Definition: DtSilverLiningCubeMapManager.h:67
DtVirtualBaseClassCreator< DtCloudDrawable, DtSilverliningGroup * > DtCloudDrawableCreator
creator
Definition: DtCloudDrawable.h:41
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
osg::ref_ptr< osg::Uniform > myMutableIsReflectionUniform
Definition: DtCloudDrawable.h:176
Base class for handling DtChannels. Derived classes should override the tick() method and advance the...
Definition: DtChannelManager.h:32
Base class to provide boost signal/slot management.
const char int mode
Definition: ioapi.h:38
Contains DLL export macros.
DtOsgFrameTextureBlitterManager responsible for copying depth buffer to render to target...
Definition: DtOsgFrameTextureBlitterManager.h:46
osg::ref_ptr< osg::Uniform > myMutablePersMatrixUniform
Definition: DtCloudDrawable.h:174
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:70
bool myShadingRateIsSupported
Definition: DtCloudDrawable.h:184
float mySmoothCloudsDist
Definition: DtCloudDrawable.h:188
std::map< SilverLining::CloudLayer *, double > myOriginalAltitudesMap
Definition: DtCloudDrawable.h:168
bool myEnableSmoothClouds
mutable due to osg drawImplementation limitations. Used for imgui settings for cloud smoothing...
Definition: DtCloudDrawable.h:187
osg::ref_ptr< osg::StateSet > myStateSet
Definition: DtCloudDrawable.h:182
osg::ref_ptr< osg::Uniform > myMutableInvPersMatrixUniform
Definition: DtCloudDrawable.h:173
Definition: vrfObjectManipulationHandlerBaseClass.h:66
bool myGeocentricFlag
Definition: DtCloudDrawable.h:159