0001 function point2tet = point_in_tet(fmdl,points, epsilon)
0002
0003
0004
0005
0006
0007
0008 progress_msg('Point_in_tet');
0009 [A,b] = tet_to_inequal(fmdl.nodes,fmdl.elems);
0010 progress_msg(.01);
0011
0012 point2tet = (bsxfun(@minus, A(1:4:end,:)*points',b(1:4:end)) <= epsilon)';
0013 progress_msg(.21);
0014 for i = 2:4
0015 point2tet = point2tet & (bsxfun(@minus, A(i:4:end,:)*points',b(i:4:end)) <= epsilon)';
0016 progress_msg(.21 + (i-1)*.23);
0017 end
0018
0019
0020 ex= bsxfun(@eq,points(:,1),fmdl.nodes(:,1)') & ...
0021 bsxfun(@eq,points(:,2),fmdl.nodes(:,2)') & ...
0022 bsxfun(@eq,points(:,3),fmdl.nodes(:,3)');
0023 progress_msg(.94);
0024 point2tet(any(ex,2),:) = 0;
0025 point2tet = sparse(point2tet);
0026 progress_msg(Inf);
0027 end