+void Node::AddRenderer( Renderer* renderer )
+{
+ // If it is the first renderer added, make sure the world transform will be calculated
+ // in the next update as world transform is not computed if node has no renderers.
+ if( mRenderer.Empty() )
+ {
+ mDirtyFlags |= NodePropertyFlags::TRANSFORM;
+ }
+ else
+ {
+ // Check that it has not been already added.
+ for( auto&& existingRenderer : mRenderer )
+ {
+ if( existingRenderer == renderer )
+ {
+ // Renderer is already in the list.
+ return;
+ }
+ }
+ }
+
+ mRenderer.PushBack( renderer );
+ SetPropertyDirty( true );
+}
+
+void Node::RemoveRenderer( const Renderer* renderer )