/// <summary>
 /// Passes the Component to the SceneVisitor which decides what to do with that Component.
 /// </summary>
 /// <param name="sv">The SceneVisitor instance updates the position of this pointlight according to the transformation of the pointlights parent.</param>
 public override void Accept(SceneVisitor sv)
 {
     if (SceneEntity != null)
     {
         _position = SceneEntity.transform.GlobalPosition * SceneManager.RC.View;
     }
     sv.Visit((PointLight)this);
 }
 /// <summary>
 /// Accept is called by the current visitor. This function is currently used for traversal and search algorithms by the SceneManager object. 
 /// </summary>
 /// <param name="sv">The visitor that is currently traversing the scene.</param>
 public override void Accept(SceneVisitor sv)
 {
     if (SceneEntity != null)
     {
         _direction = SceneEntity.transform.Forward * new float3x3(SceneManager.RC.View);
     }
     sv.Visit((DirectionalLight)this);
 }
 /// <summary>
 /// Accept is called by the current visitor. This function is currently used for traversal and search algorithms by the SceneManager object. 
 /// </summary>
 /// <param name="sv">The visitor that is currently traversing the scene.</param>
 public override void Accept(SceneVisitor sv)
 {
     sv.Visit((ActionCode)this);
 }
 /// <summary>
 /// Passes the Component to the SceneVisitor which decides what to do with that Component.
 /// </summary>
 /// <param name="sv">The SceneVisitor that traverses through the information of the renderer during runtime.</param>
 public override void Accept(SceneVisitor sv)
 {
     sv.Visit((Renderer)this);
 }
 /// <summary>
 /// Passes the Component to the SceneVisitor which decides what to do with that Component.
 /// </summary>
 /// <param name="sv">The sv.</param>
 public virtual void Accept(SceneVisitor sv)
 {
     //sv.Visit(this);
 }
 /// <summary>
 /// Passes the Component to the SceneVisitor which decides what to do with that Component.
 /// </summary>
 /// <param name="sv">The SceneVisitor.</param>
 public override void Accept(SceneVisitor sv)
 {
     if (SceneEntity != null)
     {
         _position = SceneEntity.transform.GlobalPosition * SceneManager.RC.View;
         _direction = SceneEntity.transform.Forward * new float3x3(SceneManager.RC.View);
     }
     sv.Visit((SpotLight)this);
 }
 /// <summary>
 /// Passes this Component to the <see cref="SceneVisitor"/> which decides what to do with that Component.
 /// </summary>
 /// <param name="sv">The SceneVisitor.</param>
 public override void Accept(SceneVisitor sv)
 {
     sv.Visit(this);
 }
 /// <summary>
 /// Accept is called by the current visitor. This function is currently used for traversal and search algorithms by the SceneManager object. 
 /// </summary>
 /// <param name="sv">The visitor that is currently traversing the scene.</param>
 public override void Accept(SceneVisitor sv)
 {
     sv.Visit((Camera)this);
     //DrawCameraView();
 }