mymesh.rays.PointsInSurf#

mymesh.rays.PointsInSurf(pts, NodeCoords, SurfConn, ElemNormals=None, Octree='generate', eps=1e-08, rays=None)[source]#

Test to determine whether points are inside a surface mesh.

Parameters:
  • pts (array_like) – 3D coordinates for the points shape=(n,3).

  • NodeCoords (array_like) – List of node coordinates of the surface

  • SurfConn (array_like) – Node connectivity of elements. This function is only valid for triangular surface meshes.

  • ElemNormals (array_like, NoneType, optional) – Element normal vectors. If None are provided, they will be calculated.

  • Octree (None, str, or octree.octreeNode, optional) – Determines whether to use/generate an octree data structure for acceleration of the intersection testing, by default None. ‘generate’ - Will generate an octree structure of the surface None - Will not use an octree structure octree.octreeNode - Octree data structure precomputed using mymesh.octree.Surface2Octree()

  • eps (float, optional) – Small parameter used to determine if a value is sufficiently close to 0, by default 1e-8

  • rays (array_like, optional) – Rays that will be cast to determine whether the points are inside or outside the surface, by default np.random.rand(3). For a closed, manifold surface, the choice of ray shouldn’t matter.

Returns:

inside – True if the point is inside the surface, otherwise False.

Return type:

bool