/// <summary>
 /// Visits the specified action code to collect data if required by the current Visitor derivate.
 /// </summary>
 /// <param name="actionCode">The action code.</param>
 public virtual void Visit(ActionCode actionCode)
 {
 }
 /// <summary>
 /// Visits the specified <see cref="ActionCode"/> to call it's Start method for initialization.
 /// </summary>
 /// <param name="actionCode">The ActionCode instance.</param>
 public override void Visit(ActionCode actionCode)
 {
     actionCode.Start();
 }
        /*
        private void VisitComponent(ActionCode actionCode)
        {
            actionCode.TraverseForRendering(this);
        }
        private void VisitComponent(Renderer renderer)
        {
            StoreMesh(renderer.mesh);
            StoreRenderer(renderer);
        }
        private void VisitComponent(Transformation transform)
        {
            AddTransform(transform.Matrix);
        }
        private void VisitComponent(DirectionalLight directionalLight)
        {
            directionalLight.TraverseForRendering(this);
        }
        private void VisitComponent(PointLight pointLight)
        {
            pointLight.TraverseForRendering(this);
        }
        private void VisitComponent(SpotLight spotLight)
        {
            spotLight.TraverseForRendering(this);
        }
        private void VisitComponent(Camera camera)
        {

            if (_mtxModelViewStack.Peek() != null)
            {
                camera.ViewMatrix = _mtxModelViewStack.Peek();
                _queue.AddCamera(camera.SubmitWork());
            }
        }*/
        /// <summary>
        /// Visits the specified <see cref="ActionCode"/> to collect data if required by the current Visitor derivate.
        /// </summary>
        /// <param name="actionCode">The action code.</param>
        public override void Visit(ActionCode actionCode)
        {
            actionCode.TraverseForRendering(this);
        }