| 176 | } |
| 177 | |
| 178 | void EveEffectRoot2::UpdateSyncronous( const EveUpdateContext& updateContext ) |
| 179 | { |
| 180 | CCP_STATS_ZONE( __FUNCTION__ ); |
| 181 | |
| 182 | UpdateWorldTransform( updateContext.GetTime() ); |
| 183 | |
| 184 | m_localTransform = TransformationMatrix( m_scaling, m_rotation, m_translation ); |
| 185 | m_lastUpdateMatrix = m_localTransform * m_worldTransform; |
| 186 | m_secondaryLightingSphereRadiusWorld = m_secondaryLightingSphereRadiusLocal * ( m_scaling.x + m_scaling.y + m_scaling.z ) / 3.f; |
| 187 | |
| 188 | for( TriObserverLocalVector::iterator it = m_observers.begin(); it != m_observers.end(); ++it ) |
| 189 | { |
| 190 | ( *it )->Update( m_lastUpdateMatrix ); |
| 191 | } |
| 192 | |
| 193 | if( !m_effectChildren.empty() ) |
| 194 | { |
| 195 | Matrix worldTransform; |
| 196 | GetLocalToWorldTransform( worldTransform ); |
| 197 | EveChildUpdateParams params; |
| 198 | params.spaceObjectParent = this; |
| 199 | params.childParent = nullptr; |
| 200 | params.boneCount = 0; |
| 201 | params.bones = nullptr; |
| 202 | params.localToWorldTransform = worldTransform; |
| 203 | params.isVisible = m_display; |
| 204 | |
| 205 | for( auto ecIt = m_effectChildren.begin(); ecIt != m_effectChildren.end(); ++ecIt ) |
| 206 | { |
| 207 | ( *ecIt )->UpdateSyncronous( updateContext, params ); |
| 208 | } |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | void EveEffectRoot2::UpdateAsyncronous( const EveUpdateContext& updateContext ) |
| 213 | { |