function PlotRectangle(tag, x0, y0, lenx, leny, rotation, varargin)
%PLOTRECTANGLE  One line description goes here.
%
%   More detailed description goes here.
%
%   Syntax:
%   PlotRectangle(tag, x0, y0, lenx, leny, rotation, varargin)
%
%   Input:
%   tag      =
%   x0       =
%   y0       =
%   lenx     =
%   leny     =
%   rotation =
%   varargin =
%
%
%
%
%   Example
%   PlotRectangle
%
%   See also

%% Copyright notice
%   --------------------------------------------------------------------
%   Copyright (C) 2011 Deltares
%       Maarten van Ormondt
%
%       Maarten.vanOrmondt@deltares.nl
%
%       P.O. Box 177
%       2600 MH Delft
%       The Netherlands
%
%   This library is free software: you can redistribute it and/or modify
%   it under the terms of the GNU General Public License as published by
%   the Free Software Foundation, either version 3 of the License, or
%   (at your option) any later version.
%
%   This library is distributed in the hope that it will be useful,
%   but WITHOUT ANY WARRANTY; without even the implied warranty of
%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%   GNU General Public License for more details.
%
%   You should have received a copy of the GNU General Public License
%   along with this library.  If not, see <http://www.gnu.org/licenses/>.
%   --------------------------------------------------------------------

% This tool is part of <a href="http://www.OpenEarth.eu">OpenEarthTools</a>.
% OpenEarthTools is an online collaboration to share and manage data and
% programming tools in an open source, version controlled environment.
% Sign up to recieve regular updates of this function, and to contribute
% your own tools.

%% Version <http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html>
% Created: 29 Nov 2011
% Created with Matlab version: 7.11.0.584 (R2010b)

% $Id: $
% $Date: $
% $Author: $
% $Revision: $
% $HeadURL: $
% $Keywords: $

%%

dx=[];
dy=[];
fmove=[];
fstop=[];
col='g';
lw=1.5;
marker='o';
markercol='r';
rot=1;

if nargin>6
    dx=varargin{1};
    dy=varargin{2};
    fmove=varargin{3};
    fstop=varargin{4};
    col=varargin{5};
    lw=varargin{6};
    marker=varargin{7};
    markercol=varargin{8};
    rot=varargin{9};
end

plt=findobj(gcf,'Tag',tag);

x(1)=x0;
x(2)=x(1)+lenx*cos(pi*rotation/180);
x(3)=x(2)-leny*sin(pi*rotation/180);
x(4)=x(1)-leny*sin(pi*rotation/180);
x(5)=x(1);

y(1)=y0;
y(2)=y(1)+lenx*sin(pi*rotation/180);
y(3)=y(2)+leny*cos(pi*rotation/180);
y(4)=y(1)+leny*cos(pi*rotation/180);
y(5)=y(1);

if isempty(plt)
    
    plt=plot(x,y);
    set(plt,'Color',col,'LineWidth',lw);
    set(plt,'Tag',tag);
    for i=1:4
        p(i)=plot3(x(i),y(i),5000);
        set(p(i),'Marker',marker,'MarkerFaceColor',markercol,'MarkerEdgeColor','k','MarkerSize',4);
        u.nr=i;
        u.parent=plt;
        set(p(i),'UserData',u);
    end
    set(p(1),'MarkerFaceColor','y','MarkerSize',5);
    
    usd.tag=tag;
    usd.fmove=fmove;
    usd.fstop=fstop;
    usd.rot=rot;
    usd.col=col;
    usd.lw=lw;
    usd.marker=marker;
    usd.markercol=markercol;
    usd.ch=p;
    usd.fmove=fmove;
    usd.fstop=fstop;
    usd.dx=dx;
    usd.dy=dy;
    
else
    set(plt,'XData',x,'YData',y);
    for i=1:4
        usd=get(plt,'UserData');
        set(usd.ch(i),'XData',x(i),'YData',y(i));
    end
end

usd.xori=x0;
usd.yori=y0;
usd.lenx=lenx;
usd.leny=leny;
usd.x=x;
usd.y=y;
usd.rotation=rotation;

set(plt,'UserData',usd);

