CLightSceneNode::updateAbsolutePosition does now light recalculations. This is to fix using animators with lights.

Thx @chronologicaldot for report.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5111 dfc29bdd-3216-0410-991c-e03cc46cb475
master
cutealien 2015-07-29 00:15:02 +00:00
parent 520f1f27cf
commit fbd317496c
3 changed files with 12 additions and 1 deletions

View File

@ -1,6 +1,7 @@
--------------------------
Changes in 1.9 (not yet released)
- CLightSceneNode::updateAbsolutePosition does now light recalculations. This is to fix using animators with lights.
- Fix collada export for objects with rotations around more than 1 axis.
- Add ISceneNodeAnimatorCameraMaya::setTargetMinDistance and getTargetMinDistance.
- Add override font to IGUITreeView

View File

@ -34,7 +34,7 @@ CLightSceneNode::CLightSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
//! pre render event
void CLightSceneNode::OnRegisterSceneNode()
{
doLightRecalc();
doLightRecalc(); // TODO: since doLightRecalc has now been added to updateAbsolutePosition it might be possible to remove this one.
if (IsVisible)
SceneManager->registerNodeForRendering(this, ESNRP_LIGHT);
@ -201,6 +201,12 @@ void CLightSceneNode::doLightRecalc()
}
}
void CLightSceneNode::updateAbsolutePosition()
{
ILightSceneNode::updateAbsolutePosition();
doLightRecalc();
}
//! Writes attributes of the scene node.
void CLightSceneNode::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const

View File

@ -88,6 +88,10 @@ public:
//! Check whether this light casts shadows.
/** \return True if light would cast shadows, else false. */
virtual bool getCastShadow() const _IRR_OVERRIDE_;
//! Updates the absolute position based on the relative and the parents position
virtual void updateAbsolutePosition() _IRR_OVERRIDE_;
private:
video::SLight LightData;