function q=my_quad2Dgen( f, p, t)

nnodes = size(p, 2);  % Antal noder. (= antal kolonner i p)
ntri = size(t, 2);    % Antal trianglar. (= antal kolonner i t)

q = 0;

for n = 1:ntri
  
  % Ta reda på hörnens nodnummer:
  
  i = t(1, n);  % Nodnummer för hörn nummer 1 i triangel nummer n.
  j = t(2, n);  % Nodnummer för hörn nummer 2 i triangel nummer n.
  k = t(3, n);  % Nodnummer för hörn nummer 3 i triangel nummer n.
                %
                % 1 -> 2 -> 3 moturs riktning.
                
  % Ta reda på hörnens koordinater:
  
  xnodi = p(1, i);  % x-koordinat för nod nummer i.
  xnodj = p(1, j);  % x-koordinat för nod nummer j.
  xnodk = p(1, k);  % x-koordinat för nod nummer k.
  
  ynodi = p(2, i);  % y-koordinat för nod nummer i.
  ynodj = p(2, j);  % y-koordinat för nod nummer j.
  ynodk = p(2, k);  % y-koordinat för nod nummer k.
  
  % Räkna ut triangelns mittpunkt:  
  
  xmitt = (xnodi + xnodj + xnodk)/3;
  ymitt = (ynodi + ynodj + ynodk)/3;
  
  % Räkna ut triangelns area = 
  % halva arean av den parallellogram
  % som spänns av vektorerna mellan
  % nod j och nod i samt mellan nod k
  % och nod i
  triangelarea = ((xnodj - xnodi)*(ynodk - ynodi) - ...
                  (xnodk - xnodi)*(ynodj - ynodi))/2;
  
  % ... gör att man kan fortsätta skriva på nästa rad.
  
  q = q + feval(f,xmitt,ymitt)*triangelarea;
  
end