function [ O, ind_izl, postoji_offsp ] = racunamo_offspringe (ind_ul) 
% racunamo_offspringe
% Ulazi: ind_ul - indeks koeficijenta matrice
% Izlazi: O - vektor s vrijednostima offspringa (djece)
%         ind_izl - matrica s indeksima djece
%         postoji_offsp - zastavica koja kad joj je vrijednost 0 oznaèava
%                         da je koeficijent na rubu matrice


global wav_matrica
global n_razl

[y x]=size(wav_matrica);
ind_izl=[];
O=[];
postoji_offsp=1;

% i,j sad idu od nula nadalje
i=ind_ul(1,1)-1;
j=ind_ul(1,2)-1;

H_sizex=x/(2^n_razl);
H_sizey=y/(2^n_razl);

if ((i<H_sizey) & (j<H_sizex))
    if (H_sizey==1) & (H_sizex==1)
        ind_izl(1,1)=1;
        ind_izl(1,2)=2;
        ind_izl(2,1)=2;
        ind_izl(2,2)=1;
        ind_izl(3,1)=2;
        ind_izl(3,2)=2;
        ind_izl(4,1)=0;
        ind_izl(4,2)=0;
    else

        if ((mod(i,2)==0) & (mod(j,2)==1)) %i paran, j neparan (1)
            ind_izl(1,1)=i+1; %sve +1 zbog matlaba
            ind_izl(1,2)=j+H_sizex-1+1;
            ind_izl(2,1)=i+1;
            ind_izl(2,2)=j+H_sizex+1;
            ind_izl(3,1)=i+1+1;
            ind_izl(3,2)=j+H_sizex-1+1;
            ind_izl(4,1)=i+1+1;
            ind_izl(4,2)=j+H_sizex+1;
        elseif ((mod(i,2)==1) & (mod(j,2)==0))
            ind_izl(1,1)=i+H_sizey-1+1; %sve +1 zbog matlaba
            ind_izl(1,2)=j+1;
            ind_izl(2,1)=i+H_sizey-1+1;
            ind_izl(2,2)=j+1+1;
            ind_izl(3,1)=i+H_sizey+1;
            ind_izl(3,2)=j+1;
            ind_izl(4,1)=i+H_sizey+1;
            ind_izl(4,2)=j+1+1;
        elseif ((mod(i,2)==1) & (mod(j,2)==1))
            ind_izl(1,1)=i+H_sizey-1+1; %sve +1 zbog matlaba
            ind_izl(1,2)=j+H_sizex-1+1;
            ind_izl(2,1)=i+H_sizey-1+1;
            ind_izl(2,2)=j+H_sizex+1;
            ind_izl(3,1)=i+H_sizey+1;
            ind_izl(3,2)=j+H_sizex-1+1;
            ind_izl(4,1)=i+H_sizey+1;
            ind_izl(4,2)=j+H_sizex+1;
        end
    end

elseif (((i>=H_sizey) | (j>=H_sizex)) & ((i<y/2)  & (j<x/2)))  
    %svi +1 jer idu od 1 pa nadalje indeksi
    ind_izl(1,1)=2*i+1;
    ind_izl(1,2)=2*j+1; 
    ind_izl(2,1)=2*i+1;
    ind_izl(2,2)=2*j+1+1;
    ind_izl(3,1)=2*i+1+1;
    ind_izl(3,2)=2*j+1;
    ind_izl(4,1)=2*i+1+1;
    ind_izl(4,2)=2*j+1+1;
else
    ind_izl = zeros (4,2);
    %nema offspringa - gotovo!
end

if (all(ind_izl)==0) %ako su neki nula
    if not (any(ind_izl)==1) %svi su 0
        postoji_offsp=0;
        return;
    else
        
        O(1)=wav_matrica (ind_izl(1,1), ind_izl(1,2));
        O(2)=wav_matrica (ind_izl(2,1), ind_izl(2,2));
        O(3)=wav_matrica (ind_izl(3,1), ind_izl(3,2));

    end

else
    O(1)=wav_matrica (ind_izl(1,1), ind_izl(1,2));
    O(2)=wav_matrica (ind_izl(2,1), ind_izl(2,2));
    O(3)=wav_matrica (ind_izl(3,1), ind_izl(3,2));
    O(4)=wav_matrica (ind_izl(4,1), ind_izl(4,2));
end

