mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
handle mounted lights ghosting in and out
send a periodic corrective packet for mounted lights to ensure they stay mounted when moving in and out of ghosting
This commit is contained in:
parent
e77c4b3a18
commit
4d66ae37de
2 changed files with 15 additions and 3 deletions
|
|
@ -147,7 +147,7 @@ bool LightBase::onAdd()
|
||||||
// Update the light parameters.
|
// Update the light parameters.
|
||||||
_conformLights();
|
_conformLights();
|
||||||
addToScene();
|
addToScene();
|
||||||
|
setProcessTick(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -256,10 +256,22 @@ void LightBase::_onUnselected()
|
||||||
|
|
||||||
void LightBase::interpolateTick( F32 delta )
|
void LightBase::interpolateTick( F32 delta )
|
||||||
{
|
{
|
||||||
|
if (isMounted()) {
|
||||||
|
MatrixF mat;
|
||||||
|
mMount.object->getRenderMountTransform(delta, mMount.node, mMount.xfm, &mat);
|
||||||
|
mLight->setTransform(mat);
|
||||||
|
Parent::setTransform(mat);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LightBase::processTick()
|
void LightBase::processTick()
|
||||||
{
|
{
|
||||||
|
if (isMounted()) {
|
||||||
|
MatrixF mat;
|
||||||
|
mMount.object->getMountTransform(mMount.node, mMount.xfm, &mat);
|
||||||
|
mLight->setTransform(mat);
|
||||||
|
setTransform(mat);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LightBase::advanceTime( F32 timeDelta )
|
void LightBase::advanceTime( F32 timeDelta )
|
||||||
|
|
|
||||||
|
|
@ -1236,10 +1236,10 @@ bool SceneObject::_setMountPID( void* object, const char* index, const char* dat
|
||||||
|
|
||||||
void SceneObject::resolveMountPID()
|
void SceneObject::resolveMountPID()
|
||||||
{
|
{
|
||||||
if ( mMountPID && !mMount.object )
|
if ( mMountPID )
|
||||||
{
|
{
|
||||||
SceneObject *obj = dynamic_cast< SceneObject* >( mMountPID->getObject() );
|
SceneObject *obj = dynamic_cast< SceneObject* >( mMountPID->getObject() );
|
||||||
if ( obj )
|
if ( obj != mMount.object)
|
||||||
obj->mountObject( this, mMount.node, mMount.xfm );
|
obj->mountObject( this, mMount.node, mMount.xfm );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue