ISPOINTINMESH Check if a point is inside a 3D mesh. B = isPointInMesh(PT, V, F) Check if the point PT (given as a 1-by-3 array) is inside the mesh defined by the vertices V and the face array F. The result is a boolean. If PT is a N-by-3 point array, the result is a N-by-1 array of logical. Example [v, f] = torusMesh([50 50 50 30 10 30 45]); [x, y, z] = meshgrid(5:5:100, 5:5:100, 5:5:100); res = false(size(x)); res(:) = isPointInMesh([x(:) y(:) z(:)], v, f); figure; plot3(x(res), y(res), z(res), 'b.'); axis equal; Algorithm: The method computes the intersection with a ray starting from the point(s) and with a random orientation. Some errors are possible if rays crosses the mesh between two or three faces. See also meshes3d, intersectLineMesh3d
Package: matgeom