protected override void Update( bool updateChildren, bool parentHasChanged )
{
bool checkMovables = false;
//needChildUpdate is more appropriate than needParentUpdate. needParentUpdate
//is set to false when there is a DerivedPosition/DerivedOrientation.
if ( this.needChildUpdate || parentHasChanged )
checkMovables = true;
base.Update( updateChildren, parentHasChanged );
if ( checkMovables )
{
foreach ( MovableObject obj in this.objectList.Values )
{
if ( obj is TextureLight )
{
// the notification of BspSceneManager when the position of
// the light is changed, is taken care of at TextureLight.Update()
continue;
}
( (BspSceneManager)this.Creator ).NotifyObjectMoved( obj, this.DerivedPosition );
}
}
}