25 #include <osgSim/LightPointNode>
27 #include <boost/thread.hpp>
28 #include <boost/thread/recursive_mutex.hpp>
29 #include <boost/thread/shared_mutex.hpp>
45 class DtLightPointNode;
46 class DtLightPointDrawable;
127 virtual void registerInstancedLightPoints(
LightPointVec &lightPoints,
bool daylightControlled);
130 virtual void findAndRegisterLightPoints(osg::Node* node,
const std::string& groupName,
bool daylightControlled,
const DtIndirectFadeParameters& fadeParameters,
bool combineLightPoints);
135 const std::string& groupName,
bool daylightControlled,
141 const std::string& groupName,
bool daylightControlled,
148 virtual DtLightPointNode *createLightPointNode(osg::Node *nodeRef,
bool daylightControlled);
162 virtual DtGlBuffer *lightPointNodeBuffer(osg::Camera* camera);
167 virtual void updateLightPointVertexBuffer(
const std::vector<DtLightPointDrawable::LightPointVertexAttrib>& vertexAttribData,
int minChanged,
int maxChanged);
178 virtual void slot_preTick();
181 virtual void clearNodeBuffer(
const osg::Camera* camera);
184 unsigned int nodeBufferMaxNodeId(
const osg::Camera *camera);
192 virtual void processImGui();
198 virtual bool debugLabelsEnabled()
const;
201 virtual bool debugDirectionEnabled()
const;
204 virtual bool softerLightPointsEnabled();
207 virtual float softenIntensity();
211 virtual void setShouldReplaceOsgSimLightPoints(
bool enable);
215 virtual bool shouldReplaceOsgSimLightPoints();
218 virtual void freeNodeIds(std::vector<int> &nodeIds);
220 virtual void releaseGLObjects(osg::State * state)
const;
223 virtual void setInstanceReflectionMatrix(
const osg::Camera *camera,
const osg::Matrixf &reflectMat);
226 virtual const osg::Matrixf &instanceReflectionMatrix(
const osg::Camera *camera);
229 virtual bool drawLightPoints();
240 virtual void slot_reloadShaders();
243 virtual void setupShaders();
247 int parseNodeGroupId(osg::Node *lightPointNode);
250 std::string parseNodeGroupName(osg::Node *node);
253 virtual void populateLightPointNode(osg::Node *nodeRef,
DtLightPointNode *dtLpRef,
bool daylightControlled,
bool newNode);
258 static void cleanupNodes(osg::Node* node);
float pixelSize[4]
Definition: DtOsgLightPointManager.h:60
std::map< nodeIntPair, int > NodeIdMap
Definition: DtOsgLightPointManager.h:272
Definition: DtOsgLightPointManager.h:55
osg::ref_ptr< DtLightPointDrawable > myMasterLightPointDrawable
Definition: DtOsgLightPointManager.h:281
DtGlBuffer * myLightPointNodeBuffer
Definition: DtOsgLightPointManager.h:267
boost::mutex myMutex
Definition: DtOsgLightPointManager.h:276
GroupIdMap myImGuiProcessedGroupIds
Definition: DtOsgLightPointManager.h:290
std::pair< DtLightPointNode *, int > nodeIntPair
Definition: DtOsgLightPointManager.h:271
Contains makVrv::DtLightPointManager class.
bool myDebugLabelsEnabled
Definition: DtOsgLightPointManager.h:283
DtGlBuffer * myLightPointVertexBuffer
Definition: DtOsgLightPointManager.h:268
bool mySofterLightPointsEnabled
Definition: DtOsgLightPointManager.h:286
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float intensity[4]
Definition: DtOsgLightPointManager.h:58
ParentGroupIdMap myImGuiGroups
Definition: DtOsgLightPointManager.h:293
osg::ref_ptr< osg::Node > LightPointNodeRef
Definition: DtOsgLightPointManager.h:52
float sectors[4]
Definition: DtOsgLightPointManager.h:59
std::map< std::string, GroupIdMap > ParentGroupIdMap
Definition: DtOsgLightPointManager.h:292
float radiusScale
Definition: DtOsgLightPointManager.h:71
float fadeParametersAttenuationDistance
Definition: DtOsgLightPointManager.h:75
osg::Vec4f eyeLocal
Definition: DtOsgLightPointManager.h:68
boost::signalslib::signal< void(LightPointNodeObsSet &)> signal_lightPointsRegistered
Emitted when the terrain patch has light points added.
Definition: DtOsgLightPointManager.h:232
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:105
Definition: DtOsgLightPointManager.h:65
std::set< LightPointNodeObs > LightPointNodeObsSet
Definition: DtOsgLightPointManager.h:53
DtDe & myDtDe
Definition: DtOsgLightPointManager.h:299
boost::shared_mutex myLightsTableMutex
Definition: DtOsgLightPointManager.h:279
Contains makVrv::DtLightPointDrawable class.
float mySoftenIntensity
Definition: DtOsgLightPointManager.h:287
Contains makVrv::DtVirtualBaseClass class.
GLuint64 textureId
Definition: DtOsgLightPointManager.h:73
int groupId
Definition: DtOsgLightPointManager.h:84
std::vector< DtLightPointNodeAndXform > DtLightPointNodeAndXformVector
Vector of light point nodes and their transforms.
Definition: DtLightPointNodeAndXform.h:66
NodeIdMap myNodeIds
Definition: DtOsgLightPointManager.h:273
CameraVectorMap myLightPointNodeDataMap
Definition: DtOsgLightPointManager.h:266
float fadeParametersMinRange
Definition: DtOsgLightPointManager.h:74
Utility class container for light point types.
osg::observer_ptr< osg::Node > LightPointNodeObs
typedef a map of light point nodes use observer pointers so when they are deleted we don't try to use...
Definition: DtLightPointNodeAndXform.h:21
bool myDebugDirectionEnabled
Definition: DtOsgLightPointManager.h:284
std::set< int > myFreeNodeIds
Definition: DtOsgLightPointManager.h:274
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtIndirectFadeParameters.h:17
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:37
float posScale
Definition: DtOsgLightPointManager.h:70
osg::ref_ptr< osg::Node > lightPoint
Definition: DtOsgLightPointManager.h:82
template light point data
Definition: DtOsgLightPointManager.h:79
Class derived from osg::Drawable to handle all DtLightPointNode light points it gathers all the light...
Definition: DtLightPointDrawable.h:52
float resIntensityDaylight2Unused[4]
Definition: DtOsgLightPointManager.h:61
std::vector< LightPoint > LightPointVec
Definition: DtOsgLightPointManager.h:87
boost::recursive_mutex myNodeBufferMutex
Definition: DtOsgLightPointManager.h:278
A generic OpenGL buffer.
Definition: DtGlBuffer.h:27
DtGlBuffer * myLightPointTypeBuffer
Definition: DtOsgLightPointManager.h:262
Base class to provide boost signal/slot management.
bool myDrawLightPoints
Definition: DtOsgLightPointManager.h:288
unsigned int attachDrawableIx
Definition: DtOsgLightPointManager.h:83
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
int groupId
Definition: DtOsgLightPointManager.h:69
boost::mutex myNodeIdMutex
Definition: DtOsgLightPointManager.h:277
LightPointNodeObsSet myLightPointNodes
Definition: DtOsgLightPointManager.h:297
LightPoint()
Definition: DtOsgLightPointManager.h:81
float isInstancedReflection
Definition: DtOsgLightPointManager.h:72
std::map< const osg::Camera *, osg::Matrixf > myInstanceReflectionMatrix
Definition: DtOsgLightPointManager.h:295
std::map< const osg::Camera *, std::vector< float > > CameraVectorMap
Definition: DtOsgLightPointManager.h:265
DtGlBuffer * myLightPointGroupBuffer
Definition: DtOsgLightPointManager.h:263
Contains makVrv::DtIndirectViewParameters class.
float color[4]
Definition: DtOsgLightPointManager.h:57
Contains makVrv::DtIndirectFadeParameters class.
bool myShouldReplaceOsgSimLightPoints
Definition: DtOsgLightPointManager.h:285
osg::Matrixf modelView
Definition: DtOsgLightPointManager.h:67
std::map< std::string, int > GroupIdMap
Definition: DtLightPointManager.h:35
DtLightPointManager core base class for DtOsgLightPointManger (which does most of the work for light ...
Definition: DtLightPointManager.h:28