26 #include <osgSim/LightPointNode>
28 #include <boost/thread.hpp>
29 #include <boost/thread/recursive_mutex.hpp>
30 #include <boost/thread/shared_mutex.hpp>
46 class DtLightPointNode;
47 class DtLightPointDrawable;
191 virtual DtLightPointNode *createLightPointNode(osg::Node *nodeRef,
bool daylightControlled);
222 virtual DtGlBuffer *lightPointNodeBuffer(osg::Camera* camera);
227 virtual void updateLightPointVertexBuffer(
const std::vector<DtLightPointDrawable::LightPointVertexAttrib>& vertexAttribData,
int minChanged,
int maxChanged);
238 virtual void slot_preTick();
243 virtual void clearNodeBuffer(
const osg::Camera* camera);
246 unsigned int nodeBufferMaxNodeId(
const osg::Camera *camera);
254 virtual void processImGui();
260 virtual bool debugLabelsEnabled()
const;
263 virtual bool debugDirectionEnabled()
const;
266 virtual bool softerLightPointsEnabled()
const;
269 virtual float softenIntensity()
const;
273 virtual void setShouldReplaceOsgSimLightPoints(
bool enable);
277 virtual bool shouldReplaceOsgSimLightPoints();
280 virtual void freeNodeIds(std::vector<int> &nodeIds);
282 virtual void releaseGLObjects(osg::State * state)
const;
285 virtual void setInstanceReflectionMatrix(
const osg::Camera *camera,
const osg::Matrixf &reflectMat);
288 virtual const osg::Matrixf &instanceReflectionMatrix(
const osg::Camera *camera);
291 virtual bool entityInstanceGroupInformation(
const std::string& modelDefinitionName
292 ,
const std::string& entityInstanceName,
int& firstGroupId,
int& numberOfLightPointGroups);
295 virtual int entitySubLightPointGroupIndex(
const std::string& modelDefinitionName
296 ,
const std::string& subLightPointGroupName);
299 virtual void removeGroupsForEntityInstance(
const std::string& modelDefinitionName,
const std::string& entityInstanceName);
302 virtual int registerNewEntityInstanceAndGetStartingGroupIdIndex(
const std::string& modelDefinitionName
303 ,
const std::string& entityInstanceName);
306 virtual bool drawLightPoints();
313 virtual const std::string searchNodeHierarchyForGroupName(osg::Node* sourceNode)
const;
327 virtual void slot_reloadShaders();
330 virtual void setupShaders();
333 const std::string parseNodeGroupName(osg::Node* node)
const;
341 virtual void populateLightPointNode(osg::Node *nodeRef,
DtLightPointNode *dtLpRef,
bool daylightControlled
344 virtual const std::string specialCaseSearchForCreatorGeneratedRunwayGroups(osg::Node* searchNode)
const;
349 static void cleanupNodes(osg::Node* node);
bool isIndirected
Definition: DtOsgLightPointManager.h:64
float pixelSize[4]
Definition: DtOsgLightPointManager.h:73
std::map< nodeIntPair, int > NodeIdMap
Definition: DtOsgLightPointManager.h:363
Definition: DtOsgLightPointManager.h:68
osg::ref_ptr< DtLightPointDrawable > myMasterLightPointDrawable
Definition: DtOsgLightPointManager.h:372
DtGlBuffer * myLightPointNodeBuffer
Definition: DtOsgLightPointManager.h:358
boost::mutex myMutex
Definition: DtOsgLightPointManager.h:367
GroupIdMap myImGuiProcessedGroupIds
Definition: DtOsgLightPointManager.h:382
std::pair< DtLightPointNode *, int > nodeIntPair
Definition: DtOsgLightPointManager.h:362
Contains makVrv::DtLightPointManager class.
bool myDebugLabelsEnabled
Definition: DtOsgLightPointManager.h:374
DtGlBuffer * myLightPointVertexBuffer
Definition: DtOsgLightPointManager.h:359
bool mySofterLightPointsEnabled
Definition: DtOsgLightPointManager.h:378
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float intensity[4]
Definition: DtOsgLightPointManager.h:71
ParentGroupIdMap myImGuiGroups
Definition: DtOsgLightPointManager.h:385
boost::signalslib::signal< void(DtDebugLabelMode)> signal_debugLabelModeChanged
Emitted when the debug label moed has changed.
Definition: DtOsgLightPointManager.h:319
osg::ref_ptr< osg::Node > LightPointNodeRef
Definition: DtOsgLightPointManager.h:53
std::string groupName
Definition: DtOsgLightPointManager.h:58
float sectors[4]
Definition: DtOsgLightPointManager.h:72
std::map< std::string, GroupIdMap > ParentGroupIdMap
Definition: DtOsgLightPointManager.h:384
float radiusScale
Definition: DtOsgLightPointManager.h:85
bool hasDefaultGroup
Definition: DtOsgLightPointManager.h:65
float fadeParametersAttenuationDistance
Definition: DtOsgLightPointManager.h:89
osg::Vec4f eyeLocal
Definition: DtOsgLightPointManager.h:82
float sensorSettings[4]
Definition: DtOsgLightPointManager.h:75
boost::signalslib::signal< void(LightPointNodeObsSet &)> signal_lightPointsRegistered
Emitted when the terrain patch has light points added.
Definition: DtOsgLightPointManager.h:316
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:128
DtDebugLabelMode myDebugLabelMode
Definition: DtOsgLightPointManager.h:375
Definition: DtOsgLightPointManager.h:79
std::set< LightPointNodeObs > LightPointNodeObsSet
Definition: DtOsgLightPointManager.h:54
DtDe & myDtDe
Definition: DtOsgLightPointManager.h:393
boost::shared_mutex myLightsTableMutex
Definition: DtOsgLightPointManager.h:370
Contains makVrv::DtLightPointDrawable class.
float mySoftenIntensity
Definition: DtOsgLightPointManager.h:379
Contains makVrv::DtVirtualBaseClass class.
GLuint64 textureId
Definition: DtOsgLightPointManager.h:87
DtSignalConnectionManager myImGuiDisplayNameAttributeChangedConnection
Definition: DtOsgLightPointManager.h:387
bool shouldCombineLightPoints
Definition: DtOsgLightPointManager.h:62
int groupId
Definition: DtOsgLightPointManager.h:98
std::vector< DtLightPointNodeAndXform > DtLightPointNodeAndXformVector
Vector of light point nodes and their transforms. We need to keep every path to every light at this p...
Definition: DtLightPointNodeAndXform.h:66
NodeIdMap myNodeIds
Definition: DtOsgLightPointManager.h:364
CameraVectorMap myLightPointNodeDataMap
Definition: DtOsgLightPointManager.h:357
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:44
float fadeParametersMinRange
Definition: DtOsgLightPointManager.h:88
Utility class container for light point types.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
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:376
std::set< int > myFreeNodeIds
Definition: DtOsgLightPointManager.h:365
std::map< std::string, DtLightPointGroupEntry > GroupIdMap
Definition: DtLightPointManager.h:40
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtIndirectFadeParameters.h:17
bool isDaylightControlled
Definition: DtOsgLightPointManager.h:63
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:37
std::string modelDefinitionName
Definition: DtOsgLightPointManager.h:59
float posScale
Definition: DtOsgLightPointManager.h:84
DtDebugLabelMode
Definition: DtOsgLightPointManager.h:101
osg::ref_ptr< osg::Node > lightPoint
Definition: DtOsgLightPointManager.h:96
template light point data
Definition: DtOsgLightPointManager.h:93
Class derived from osg::Drawable to handle all DtLightPointNode light points it gathers all the light...
Definition: DtLightPointDrawable.h:49
float resIntensityDaylight2Unused[4]
Definition: DtOsgLightPointManager.h:74
std::vector< LightPoint > LightPointVec
Definition: DtOsgLightPointManager.h:109
boost::recursive_mutex myNodeBufferMutex
Definition: DtOsgLightPointManager.h:369
DtIndirectFadeParameters fadeParameters
Definition: DtOsgLightPointManager.h:61
A generic OpenGL buffer. This can be: -> a vertex buffer -> an index buffer -> a shader storage buffe...
Definition: DtGlBuffer.h:29
DtGlBuffer * myLightPointTypeBuffer
Definition: DtOsgLightPointManager.h:353
Base class to provide boost signal/slot management.
Definition: DtOsgLightPointManager.h:56
bool myDrawLightPoints
Definition: DtOsgLightPointManager.h:380
unsigned int attachDrawableIx
Definition: DtOsgLightPointManager.h:97
static float defaultLightPointRange()
default light point range for when the light point should disappear
Contains the DtElementAttributeManager class declaration.
Contains DLL export macros.
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:76
int groupId
Definition: DtOsgLightPointManager.h:83
boost::mutex myNodeIdMutex
Definition: DtOsgLightPointManager.h:368
LightPointNodeObsSet myLightPointNodes
Definition: DtOsgLightPointManager.h:391
LightPoint()
Definition: DtOsgLightPointManager.h:95
float isInstancedReflection
Definition: DtOsgLightPointManager.h:86
std::map< const osg::Camera *, osg::Matrixf > myInstanceReflectionMatrix
Definition: DtOsgLightPointManager.h:389
std::map< const osg::Camera *, std::vector< float > > CameraVectorMap
Definition: DtOsgLightPointManager.h:356
DtGlBuffer * myLightPointGroupBuffer
Definition: DtOsgLightPointManager.h:354
Contains makVrv::DtIndirectViewParameters class.
float color[4]
Definition: DtOsgLightPointManager.h:70
Contains makVrv::DtIndirectFadeParameters class.
bool myShouldReplaceOsgSimLightPoints
Definition: DtOsgLightPointManager.h:377
osg::Matrixf modelView
Definition: DtOsgLightPointManager.h:81
DtLightPointManager core base class for DtOsgLightPointManger (which does most of the work for light ...
Definition: DtLightPointManager.h:28