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);
105 virtual osg::BoundingSphere computeBound()
const;
108 virtual void setLightPointTexture(
osg::Texture* texture);
111 virtual void releaseGLObjects(osg::State* state = 0)
const;
115 virtual void applyMatrixToLightPoints(
const osg::Matrix& adjustmentMatrix);
119 virtual void applyMatrixToLightPointsIncremental(
const osg::Matrix& adjustmentMatrix,
120 int firstNodeToChange);
127 virtual int lightPointCount()
const;
130 virtual osg::Vec3d lightPointPosition(
int index)
const;
133 virtual void setLightPointPosition(
int index,
const osg::Vec3d & pos);
136 virtual int lightPointType(
int index)
const;
139 virtual int lightPointNodeId()
const;
142 virtual int lightPointGroupId(
int index)
const;
145 virtual float lightPointPhase(
int index)
const;
148 virtual osg::Vec3 lightPointSectorDir(
int index)
const;
151 virtual const osg::Matrix3& lightPointSectorLocalToLp(
int index)
const;
155 virtual void setCameraRelativeLightsMode(
bool mode =
true);
156 virtual bool cameraRelativeLightsMode( );
164 LightPointInfo(
int type, std::string group,
const osg::Vec3d& pos,
const osg::Vec3& sectorDir,
165 const osg::Matrix3& sectorLocalToLp,
float phase)
166 : myLightPointType(type)
167 , myLightPointGroup(group)
169 , mySectorLocalToLp(sectorLocalToLp)
170 , mySectorDir(sectorDir)
171 , myPhaseShift(phase)
192 virtual osg::BoundingSphere computeBoundsIncremental(
int firstNode)
const;
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
GLuint64 myMutableTextureId
Definition: DtLightPointNode.h:218
DtOsgLightPointManager * myLightPointManager
Definition: DtLightPointNode.h:200
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< LightPointInfo > LightPointIntList
Definition: DtLightPointNode.h:186
Definition: featureContext.h:37
boost::recursive_mutex myMutableNodeIdMutex
Definition: DtLightPointNode.h:231
int myFrameNum
Definition: DtLightPointNode.h:207
osg::Vec3d myPosition
Definition: DtLightPointNode.h:179
osg::Matrix3 mySectorLocalToLp
Definition: DtLightPointNode.h:180
bool myActive
Definition: DtLightPointNode.h:183
osg::Vec3 myMutableFurthestPoint
Definition: DtLightPointNode.h:196
std::string myLightPointGroup
Definition: DtLightPointNode.h:178
DtIndirectFadeParameters myFadeParameters
Definition: DtLightPointNode.h:220
static int theFrameNum
Definition: DtLightPointNode.h:233
osg::BoundingBox myMutableBoundingBox
Definition: DtLightPointNode.h:195
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:106
int myCurrentInstance
Definition: DtLightPointNode.h:209
osg::Vec3 mySectorDir
Definition: DtLightPointNode.h:181
LightPointIntList myLightPointTypeList
Definition: DtLightPointNode.h:198
Contains makVrv::DtLightPointDrawable class.
std::vector< int > myFreeList
Definition: DtLightPointNode.h:226
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:164
osg::ref_ptr< osg::Texture > myLightPointTexture
Definition: DtLightPointNode.h:216
int myGroupId
Definition: DtLightPointNode.h:214
static const osg::Camera * theLastCamera
Definition: DtLightPointNode.h:234
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:182
float myFirstFrameTime
Definition: DtLightPointNode.h:222
std::vector< osg::Node * > DtNodePointerStack
Definition: DtLightPointNode.h:27
const char int mode
Definition: ioapi.h:38
bool myCameraRelativeLightsMode
Definition: DtLightPointNode.h:224
bool myLightPointsEnabled
Definition: DtLightPointNode.h:212
structure for holding all the information required to describe a single light point.
Definition: DtLightPointNode.h:160
Contains DLL export macros.
int myLightPointType
Definition: DtLightPointNode.h:177
int myAddedInstances
Definition: DtLightPointNode.h:210
osg::ref_ptr< DtLightPointDrawable > myLightPointDrawable
Definition: DtLightPointNode.h:202
const osg::Camera * myLastCamera
Definition: DtLightPointNode.h:206
Contains makVrv::DtIndirectFadeParameters class.
std::vector< int > myNodeIds
Definition: DtLightPointNode.h:204