function []=override_callback(h_edit_tilt,h_edit_accel,h_edit_brake,h_bar_tilt,max_angle,h_bar_accel,h_bar_brake)
%OVERRIDE_CALLBACK Callback para o botão de override aos valores das barras
%                  da interface gráfica.
%##########################################################################
% Esta função serve como callback para o botão de Override aos valores das
% barras verticais. Quando o utilizador lhes carrega, é feito um set ao
% valor (devidamente normalizado) ao valor das barras verticais, para
% assumir o novo valor desejado.
%
% INPUTS:
% h_edit_tilt -> Handle gráfico da caixa de texto do tilt do terreno;
% h_edit_accel -> Handle gráfico da caixa de texto da aceleração;
% h_edit_brake -> Handle gráfico da caixa de texto do travão;
% h_bar_tilt -> Handle gráfico da barra do tilt do terreno;
% max_angle -> Ângulo máximo do terreno (para efeitos de normalização;
% h_bar_accel -> Handle gráfico da barra verical do acelerador;
% max_accel -> Aceleração máxima imposta pelo motor (para efeitos de
%              normalização);
% h_bar_brake -> Handle gráfico da barra verical do travão;
% max_brake -> Aceleração negativa máxima imposta pelo travão.
%
% OUTPUTS:
% N/A
%##########################################################################
% Get á string do tilt:
s_tilt=get(h_edit_tilt,'String');
% Verifica se o campo não está vazio:
if(~strcmp(s_tilt,''))
    % Se o campo não estiver fazio captura o valor do mesmo:
    v_tilt=str2double(s_tilt);
    % Normaliza esse valor para um valor da barra:
    normalized_tilt=(v_tilt+max_angle)/(2*max_angle);
    % Faz um set ao valor da barra do tilt:
    set(h_bar_tilt,'Value',normalized_tilt);
    % Faz um set do valor do campo novamente a vazio:
    set(h_edit_tilt,'String','');
end
% Get á string do acelerador:
s_accel=get(h_edit_accel,'String');
% Verifica se o campo não está vazio:
if(~strcmp(s_accel,'')&&(str2double(s_accel)<=100)&&(str2double(s_accel)>=0))
    % Se o campo não estiver fazio captura o valor do mesmo:
    v_accel=str2double(s_accel);
    % Normaliza esse valor para um valor da barra:
    normalized_accel=(v_accel/100);
    % Faz um set ao valor da barra do acelerador:
    set(h_bar_accel,'Value',normalized_accel);
    % Faz um set do valor do campo novamente a vazio:
    set(h_edit_accel,'String','');
end
% Get á string do travão:
s_brake=get(h_edit_brake,'String');
% Verifica se o campo não está vazio:
if(~strcmp(s_brake,'')&&(str2double(s_brake)<=100)&&(str2double(s_brake)>=0))
    % Se o campo não estiver fazio captura o valor do mesmo:
    v_brake=str2double(s_brake);
    % Normaliza esse valor para um valor da barra:
    normalized_brake=(v_brake/100);
    % Faz um set ao valor da barra do acelerador:
    set(h_bar_brake,'Value',normalized_brake);
    % Faz um set do valor do campo novamente a vazio:
    set(h_edit_brake,'String','');
end
end