17 #include <boost/thread/recursive_mutex.hpp>
58 virtual void traverse(osg::NodeVisitor& nv);
63 virtual void updateDrawable(
const osg::Camera* camera,
int frameNum,
double simTime,
const osg::Matrixd &modelViewMatrix,
64 osgUtil::CullVisitor* cv,
int groupId,
bool shouldCull,
const DtIndirectFadeParameters& fadeParameters,
float posScale,
float radiusScale,
bool isInstancedReflection =
false);
67 virtual void updateNodeInfo(
bool isInstancedReflection =
false,
bool isForcedAdd =
false);
74 virtual int addTypedLightPoint(
const osg::Vec3d& pos,
int type,
const std::string&
id,
75 const osg::Vec3& rotation,
float phaseShift);
79 virtual void removeTypedLightPoint(
int index);
88 virtual void setLightPointsEnabled(
bool enabled);
91 virtual bool lightPointsEnabled();
94 virtual void setGroupId(
int id);
97 virtual int groupId();
102 virtual void freeNodeIdIfNecessary(
unsigned int maxNodeIds);
107 virtual const osg::BoundingSphere computeBound(osg::BoundingBox& outBox)
const;
112 virtual void applyMatrixToLightPoints(
const osg::Matrix& adjustmentMatrix);
116 virtual void applyMatrixToLightPointsIncremental(
const osg::Matrix& adjustmentMatrix,
117 int firstNodeToChange);
124 virtual int lightPointCount()
const;
127 virtual osg::Vec3d lightPointPosition(
int index)
const;
130 virtual void setLightPointPosition(
int index,
const osg::Vec3d & pos);
133 virtual int lightPointType(
int index)
const;
136 virtual int lightPointNodeId()
const;
139 virtual int lightPointGroupId(
int index)
const;
142 virtual float lightPointPhase(
int index)
const;
145 virtual osg::Vec3 lightPointSectorDir(
int index)
const;
148 virtual const osg::Matrix3& lightPointSectorLocalToLp(
int index)
const;
152 virtual void setCameraRelativeLightsMode(
bool mode =
true);
153 virtual bool cameraRelativeLightsMode( );
161 LightPointInfo(
int type, std::string group,
const osg::Vec3d& pos,
const osg::Vec3& sectorDir,
162 const osg::Matrix3& sectorLocalToLp,
float phase)
163 : myLightPointType(type)
164 , myLightPointGroup(group)
166 , mySectorLocalToLp(sectorLocalToLp)
167 , mySectorDir(sectorDir)
168 , myPhaseShift(phase)
189 virtual osg::BoundingSphere computeBoundsIncremental(
int firstNode)
const;
DtOsgLightPointManager * myLightPointManager
Definition: DtLightPointNode.h:197
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< LightPointInfo > LightPointIntList
Definition: DtLightPointNode.h:183
Definition: featureContext.h:36
boost::recursive_mutex myMutableNodeIdMutex
Definition: DtLightPointNode.h:224
int myFrameNum
Definition: DtLightPointNode.h:204
osg::Vec3d myPosition
Definition: DtLightPointNode.h:176
osg::Matrix3 mySectorLocalToLp
Definition: DtLightPointNode.h:177
bool myActive
Definition: DtLightPointNode.h:180
osg::Vec3 myMutableFurthestPoint
Definition: DtLightPointNode.h:193
std::string myLightPointGroup
Definition: DtLightPointNode.h:175
DtIndirectFadeParameters myFadeParameters
Definition: DtLightPointNode.h:213
static int theFrameNum
Definition: DtLightPointNode.h:226
osg::BoundingBox myMutableBoundingBox
Definition: DtLightPointNode.h:192
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:128
int myCurrentInstance
Definition: DtLightPointNode.h:206
osg::Vec3 mySectorDir
Definition: DtLightPointNode.h:178
LightPointIntList myLightPointTypeList
Definition: DtLightPointNode.h:195
Contains makVrv::DtLightPointDrawable class.
std::vector< int > myFreeList
Definition: DtLightPointNode.h:219
LightPointInfo(int type, std::string group, const osg::Vec3d &pos, const osg::Vec3 §orDir, const osg::Matrix3 §orLocalToLp, float phase)
constructor for filling the structure with data
Definition: DtLightPointNode.h:161
int myGroupId
Definition: DtLightPointNode.h:211
static const osg::Camera * theLastCamera
Definition: DtLightPointNode.h:227
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 myPhaseShift
Definition: DtLightPointNode.h:179
float myFirstFrameTime
Definition: DtLightPointNode.h:215
std::vector< osg::Node * > DtNodePointerStack
Definition: DtLightPointNode.h:27
const char int mode
Definition: ioapi.h:38
bool myCameraRelativeLightsMode
Definition: DtLightPointNode.h:217
bool myLightPointsEnabled
Definition: DtLightPointNode.h:209
structure for holding all the information required to describe a single light point.
Definition: DtLightPointNode.h:157
Contains DLL export macros.
int myLightPointType
Definition: DtLightPointNode.h:174
int myAddedInstances
Definition: DtLightPointNode.h:207
osg::ref_ptr< DtLightPointDrawable > myLightPointDrawable
Definition: DtLightPointNode.h:199
const osg::Camera * myLastCamera
Definition: DtLightPointNode.h:203
Contains makVrv::DtIndirectFadeParameters class.
std::vector< int > myNodeIds
Definition: DtLightPointNode.h:201