function [gl_markers, ij_markers] = plate_to_world(camera, setup)
	% given a camera setup and plate setup, 
	% calculate the location of calibration markers in world coordinates

	%% position and orientation of calibration plate
	pl_to_gl_mat		= setup.pl_to_gl_mat;
	gl_plate_pos		= setup.gl_plate_pos;

	%% load coordinates of markers from setup
	% clear 
	ij_markers		= [];
	gl_markers		= [];
	n_views			= setup.n_views;

	% iterate over views
	for v = 1 : n_views
		pl_to_gl		= pl_to_gl_mat(:,:,v);
		gl_pos		= gl_plate_pos(:,v);
		uv_mark		= camera.view(v).uv_markers;
		n_mark		= size(uv_mark, 2);
		gl_mark		= bsxfun(@plus, gl_pos, pl_to_gl*[uv_mark; zeros(1,n_mark)]);
		ij_mark		= camera.view(v).ij_markers;

		%% append to vectors
		gl_markers  = [gl_markers, gl_mark];
		ij_markers	= [ij_markers, ij_mark];
	end
end
