% ------------------------------------------------------------------------------
% Génération du code kml permettant de créer une flêche représentative d'un
% déplacement.
%
% SYNTAX :
%   [o_kmlStr] = ge_create_arrow(a_lonArrow, a_latArrow, a_description, ...
%                a_curStyle, a_oldStyle, a_timeSpanStart, a_timeSpanEnd)
%
% INPUT PARAMETERS :
%   a_lonArrow, a_latArrow : extrémités du déplacement
%   a_description          : contenu du champ 'description'
%   a_curStyle             : style (prédéfini) utilisé pour le déplacement
%                            courant
%   a_oldStyle             : style (prédéfini) utilisé pour l'historique du
%                            déplacement
%   a_timeSpanStart        : date de début d'affichage du déplacement
%   a_timeSpanEnd          : date de fin d'affichage du déplacement
%
% OUTPUT PARAMETERS :
%   o_kmlStr : code kml généré
%
% EXAMPLES :
%
% SEE ALSO : 
% AUTHORS  : Jean-Philippe Rannou (Altran)(jean-philippe.rannou@altran.com)
% ------------------------------------------------------------------------------
% RELEASES :
%   21/01/2009 - RNU - creation
% ------------------------------------------------------------------------------
function [o_kmlStr] = ge_create_arrow(a_lonArrow, a_latArrow, a_description, ...
   a_curStyle, a_oldStyle, a_timeSpanStart, a_timeSpanEnd)

o_kmlStr = [];

% demi angle au sommet et hauteur des flêches figurant les déplacements
ALPHA_ARROW = 20;
ALPHA_HEIGHT = 0.2;

o_kmlStr = [o_kmlStr, ge_create_line( ...
   a_lonArrow, a_latArrow, ...
   a_description, ...
   '', ...
   a_curStyle, ...
   a_timeSpanStart, a_timeSpanEnd)];
o_kmlStr = [o_kmlStr, ge_create_line( ...
   a_lonArrow, a_latArrow, ...
   a_description, ...
   '', ...
   a_oldStyle, ...
   a_timeSpanStart, '')];

[lonArrowHead latArrowHead] = ge_compute_arrow_head_coords(...
   a_lonArrow(1), a_latArrow(1), ...
   a_lonArrow(2), a_latArrow(2), ALPHA_ARROW, ALPHA_HEIGHT);

lonArrowH(1) = lonArrowHead(1);
lonArrowH(2) = lonArrowHead(3);
latArrowH(1) = latArrowHead(1);
latArrowH(2) = latArrowHead(3);

o_kmlStr = [o_kmlStr, ge_create_line( ...
   lonArrowH, latArrowH, ...
   a_description, ...
   '', ...
   a_curStyle, ...
   a_timeSpanStart, a_timeSpanEnd)];
o_kmlStr = [o_kmlStr, ge_create_line( ...
   lonArrowH, latArrowH, ...
   a_description, ...
   '', ...
   a_oldStyle, ...
   a_timeSpanStart, '')];

lonArrowH(1) = lonArrowHead(2);
lonArrowH(2) = lonArrowHead(3);
latArrowH(1) = latArrowHead(2);
latArrowH(2) = latArrowHead(3);

o_kmlStr = [o_kmlStr, ge_create_line( ...
   lonArrowH, latArrowH, ...
   a_description, ...
   '', ...
   a_curStyle, ...
   a_timeSpanStart, a_timeSpanEnd)];
o_kmlStr = [o_kmlStr, ge_create_line( ...
   lonArrowH, latArrowH, ...
   a_description, ...
   '', ...
   a_oldStyle, ...
   a_timeSpanStart, '')];

return
