function [VS] = getCoords(coords, ref_point)
	corners = length(coords)/2;
	coords;
	for i = 1:corners
		x = coords(:,i);
		y = coords(:,i+1);
		z = coords(:,i+corners);
		
		xy = y-x;
		xz = z-x;
		u(:,i) = cross(xy,xz); 						% normalovy vektor roviny (steny)
		e(i) = -dot(u(:,i),x);						% vyjadreni promenne d z obecne rovnice roviny: ax + by + cz + e = 0
		n(:,i) = [u(:,i); e(i)];					% normalovy vektor doplneny o e
		denominator = norm(u(:,i));					% normovany normalovy vektor
		nominator = dot(u(:,i),ref_point) + e(i);	% skalarni soucin normaloveho vektoru se souradnicemi bodu, pro nehoz je hledana vzdalenost od roviny
		fraction(i) = nominator / denominator;		% orientovana vzdalenost bodu od roviny
		src_wall_dist(i) = abs(fraction(i));		% vysledna poloha bodu a roviny
		
		% vypocet bodu promitnuteho na rovine (stene)
		if (fraction(i) <= 0)
			% validita resena nastavenim velmi vysokeho cisla, ktere pri vypoctu prakticky nemuze nastat
			VS(:,i) = [10e5 10e5 10e5];
		else
			for j = 1:3
				projection(j,i) = ref_point(j) - (u(j,i)/denominator) .* fraction(i);
			end
			% vypocet virtualniho zdroje
			VS(:,i) = 2 * projection(:,i) - ref_point';
		end
	end
%------------------------------------------------------	
