protected void UpdateSolution(FishSimulator.Delta delta, FishSimulator.Solution solution)
        {
            // if (this.controlMode == ControlMode.Normal)
            // {

            // }
            // else
            // {
            //     var data = this.customData.Interval;
            //     this.IsDone = delta.current > data.y;
            // }

            /*var data = this.brain.Current;
             * this.IsDone = delta.current > data.Interval.y;
             */

            // if (this.IsDone) delta.Reset();

            /*return;
             * if (delta.current > this.trajactory.GetValueX(this.currentIndex))
             * {
             *  this.trajactory[this.currentIndex] = this.body.modelData.Head.Position;
             *  this.velocity[this.currentIndex] = this.body.modelData.Velocity;
             *  this.currentIndex++;
             * }*/

            this.logger.Log(this.body.modelData, delta.current);
        }
        public void MainUpdate(FishSimulator.Delta delta, FishSimulator.Solution solution)
        {
            this.localDelta.current  += delta.deltaTime;
            this.localDelta.local    += delta.deltaTime;
            this.localDelta.deltaTime = delta.deltaTime;

            this.UpdatePerception(this.localDelta);
            this.UpdateBrain(this.localDelta);
            this.UpdateFocusser(this.localDelta);
            this.UpdateMotorController(this.localDelta);
            this.UpdateBody(this.localDelta);
            this.UpdateSolution(this.localDelta, solution);
        }