Intersections

ipctk.has_intersections(mesh: ipctk.CollisionMesh, vertices: Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]', 'flags.f_contiguous'], broad_phase: ipctk.BroadPhase = None) bool

Determine if the mesh has self intersections.

Parameters:
mesh: ipctk.CollisionMesh

The collision mesh.

vertices: Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]', 'flags.f_contiguous']

Vertices of the collision mesh.

broad_phase: ipctk.BroadPhase = None

Broad phase to use.

Returns:

A boolean for if the mesh has intersections.

ipctk.is_edge_intersecting_triangle(e0: Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]'], e1: Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]'], t0: Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]'], t1: Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]'], t2: Annotated[numpy.typing.NDArray[numpy.float64], '[3, 1]']) bool
ipctk.segment_segment_intersect(A: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]'], B: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]'], C: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]'], D: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]']) bool

Given two segments in 2d test whether they intersect each other using predicates orient2d

Parameters:
A: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]']

1st endpoint of segment 1

B: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]']

2st endpoint of segment 1

C: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]']

1st endpoint of segment 2

D: Annotated[numpy.typing.NDArray[numpy.float64], '[2, 1]']

2st endpoint of segment 2

Returns:

true if they intersect