function colors=plotMSTTree(MSTTREE)
% function plotMSTTree(MSTTREE)
% Візуалізація дерева MST

INDEX=1; LEVEL=2; SONS=3; PARENT=4; VALUE=5; DEPTH=6;
XCOORD=7; YCOORD=8; START_ANGLE=9; END_ANGLE=10; MIDDLE_ANGLE=11; SECTOR=12;

COLORS=[0 0 0.5;      0 0 1;          0 0.5 0;        0 0.5 1; ...
        0 1 0;        0 1 0.5;        0 1 1;          0.5 0 0; ...
        0.5 0 0.5;    0.5 0 1;        0.5 0.5 0;      0.5 0.5 0.5; ...
        0.5 0.5 1;    0.5 1 0;        0.5 1 0.5;      0.5 1 1; ...
        1 0 0;        1 0 0.5;        1 0 1;          1 0.5 1; ...
        1 1 0;        1 1 0.5;        1 1 1];

IMNames=MSTTREE(1,1).NUMBERS;
% визначаємо розмір дерева
[m,n]=size(MSTTREE);
MSTTREE2=cellstr(MSTTREE(1,1).NAMES);
for i=2:n
   MSTTREE2=[MSTTREE2 cellstr(MSTTREE(1,i).NAMES)];
end;
MSTTREE=IMNames;
IMNames=MSTTREE2;
clear MSTTREE2;

f=figure;
hold on;
% будуємо прямі, що зв"язують вершини
for i=n:-1:2
    iParent=MSTTREE(PARENT,i);
    plot([MSTTREE(XCOORD,i) MSTTREE(XCOORD,iParent)],...
         [MSTTREE(YCOORD,i) MSTTREE(YCOORD,iParent)],'-k');
end
% будуємо точки із відповідних секторів та позначаємо їх потрібним кольором
COLOR=1;
MAXCOLOR=max(MSTTREE(SECTOR,:));
while ~isempty(find(MSTTREE(SECTOR,:)==COLOR))
    % беремо координати вершин із потрібним кольором
    INDEX=find(MSTTREE(SECTOR,:)==COLOR);
    % будуємо точки
    plot(MSTTREE(XCOORD,INDEX),MSTTREE(YCOORD,INDEX),'ow');
    % виставляємо потрібний колір
    h=get(get(f,'Children'),'Children');
    colors=get(h(1,1),'MarkerFaceColor');
    set(h(1,1),'MarkerFaceColor',COLORS(floor(COLOR*22/MAXCOLOR),:));
    COLOR=COLOR+1;
end
% поміщаємо текст
for i=1:n
    h=text(MSTTREE(XCOORD,i)+0.1,MSTTREE(YCOORD,i)+0.1,char(IMNames(1,i)));
    set(h,'FontSize',8,'FontName','TimesNewRoman');
end