%	By Philip Torr 2002
%	copyright Microsoft Corp.
%this is code to remove outliers via chieral constraint


function inlier_index = torr_robust_chieral(X,P1,P2)

%next reproject and compare with the images
%the chieral constraint is sign(det M) * sign (third homog coord of reprojected image) * sign (fourth homog coord X)
% to make sure we dont get any outliers we average the inequalities over all the points, ones with a bad sign
% can later be removed as outleirs.
%we want chieral for both cameras to be positive

ax1 = P1 * X;

bx1 = P2 * X;

chieral = (sign(ax1(3,:) ) .* sign (X(4,:))) +  (sign(bx1(3,:) ) .* sign (X(4,:)));

inlier_index = find(chieral == 2);

