Tangent¶
Tangent Basis¶
- ipctk.point_point_tangent_basis(p0: numpy.ndarray[numpy.float64[m, 1]], p1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute a basis for the space tangent to the point-point pair.
- ipctk.point_edge_tangent_basis(p: numpy.ndarray[numpy.float64[m, 1]], e0: numpy.ndarray[numpy.float64[m, 1]], e1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute a basis for the space tangent to the point-edge pair.
- ipctk.edge_edge_tangent_basis(ea0: numpy.ndarray[numpy.float64[3, 1]], ea1: numpy.ndarray[numpy.float64[3, 1]], eb0: numpy.ndarray[numpy.float64[3, 1]], eb1: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 2]] ¶
Compute a basis for the space tangent to the edge-edge pair.
- ipctk.point_triangle_tangent_basis(p: numpy.ndarray[numpy.float64[3, 1]], t0: numpy.ndarray[numpy.float64[3, 1]], t1: numpy.ndarray[numpy.float64[3, 1]], t2: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[3, 2]] ¶
Compute a basis for the space tangent to the point-triangle pair.
\[\begin{bmatrix} \frac{t_1 - t_0}{\|t_1 - t_0\|} & \frac{((t_1 - t_0)\times(t_2 - t_0)) \times(t_1 - t_0)}{\|((t_1 - t_0)\times(t_2 - t_0))\times(t_1 - t_0)\|} \end{bmatrix}\]
Tangent Basis Jacobians¶
- ipctk.point_point_tangent_basis_jacobian(p0: numpy.ndarray[numpy.float64[m, 1]], p1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the tangent basis for the point-point pair.
- ipctk.point_edge_tangent_basis_jacobian(p: numpy.ndarray[numpy.float64[m, 1]], e0: numpy.ndarray[numpy.float64[m, 1]], e1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the tangent basis for the point-edge pair.
- ipctk.edge_edge_tangent_basis_jacobian(ea0: numpy.ndarray[numpy.float64[3, 1]], ea1: numpy.ndarray[numpy.float64[3, 1]], eb0: numpy.ndarray[numpy.float64[3, 1]], eb1: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[36, 2]] ¶
Compute the Jacobian of the tangent basis for the edge-edge pair.
- ipctk.point_triangle_tangent_basis_jacobian(p: numpy.ndarray[numpy.float64[3, 1]], t0: numpy.ndarray[numpy.float64[3, 1]], t1: numpy.ndarray[numpy.float64[3, 1]], t2: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[36, 2]] ¶
Compute the Jacobian of the tangent basis for the point-triangle pair.
Relative Velocity¶
- ipctk.point_point_relative_velocity(dp0: numpy.ndarray[numpy.float64[m, 1]], dp1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, 1]] ¶
Compute the relative velocity of two points
- ipctk.point_edge_relative_velocity(dp: numpy.ndarray[numpy.float64[m, 1]], de0: numpy.ndarray[numpy.float64[m, 1]], de1: numpy.ndarray[numpy.float64[m, 1]], alpha: float) numpy.ndarray[numpy.float64[m, 1]] ¶
Compute the relative velocity of a point and an edge
- ipctk.edge_edge_relative_velocity(dea0: numpy.ndarray[numpy.float64[3, 1]], dea1: numpy.ndarray[numpy.float64[3, 1]], deb0: numpy.ndarray[numpy.float64[3, 1]], deb1: numpy.ndarray[numpy.float64[3, 1]], coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[3, 1]] ¶
Compute the relative velocity of the edges.
- Parameters:¶
- dea0: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the first endpoint of the first edge
- dea1: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the second endpoint of the first edge
- deb0: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the first endpoint of the second edge
- deb1: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the second endpoint of the second edge
- coords: numpy.ndarray[numpy.float64[2, 1]]¶
Two parametric coordinates of the closest points on the edges
- Returns:¶
The relative velocity of the edges
- ipctk.point_triangle_relative_velocity(dp: numpy.ndarray[numpy.float64[3, 1]], dt0: numpy.ndarray[numpy.float64[3, 1]], dt1: numpy.ndarray[numpy.float64[3, 1]], dt2: numpy.ndarray[numpy.float64[3, 1]], coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[3, 1]] ¶
Compute the relative velocity of the point to the triangle.
- Parameters:¶
- dp: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the point
- dt0: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the first vertex of the triangle
- dt1: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the second vertex of the triangle
- dt2: numpy.ndarray[numpy.float64[3, 1]]¶
Velocity of the third vertex of the triangle
- coords: numpy.ndarray[numpy.float64[2, 1]]¶
Baricentric coordinates of the closest point on the triangle
- Returns:¶
The relative velocity of the point to the triangle
Relative Velocity as Multiplier Matricies¶
- ipctk.point_point_relative_velocity_matrix(dim: int) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the point-point relative velocity premultiplier matrix
- ipctk.point_edge_relative_velocity_matrix(dim: int, alpha: float) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the point-edge relative velocity premultiplier matrix
- ipctk.edge_edge_relative_velocity_matrix(dim: int, coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the edge-edge relative velocity matrix.
- ipctk.point_triangle_relative_velocity_matrix(dim: int, coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the point-triangle relative velocity matrix.
Relative Velocity Matrix Jacobians¶
- ipctk.point_point_relative_velocity_matrix_jacobian(dim: int) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the relative velocity premultiplier matrix
- ipctk.point_edge_relative_velocity_matrix_jacobian(dim: int, alpha: float) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the relative velocity premultiplier matrix
- ipctk.edge_edge_relative_velocity_matrix_jacobian(dim: int, coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the edge-edge relative velocity matrix.
- ipctk.point_triangle_relative_velocity_matrix_jacobian(dim: int, coords: numpy.ndarray[numpy.float64[2, 1]]) numpy.ndarray[numpy.float64[m, n]] ¶
Compute the Jacobian of the point-triangle relative velocity matrix.
Closet Points¶
- ipctk.point_edge_closest_point(p: numpy.ndarray[numpy.float64[m, 1]], e0: numpy.ndarray[numpy.float64[m, 1]], e1: numpy.ndarray[numpy.float64[m, 1]]) float ¶
Compute the baricentric coordinate of the closest point on the edge.
- ipctk.edge_edge_closest_point(ea0: numpy.ndarray[numpy.float64[3, 1]], ea1: numpy.ndarray[numpy.float64[3, 1]], eb0: numpy.ndarray[numpy.float64[3, 1]], eb1: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[2, 1]] ¶
Compute the barycentric coordinates of the closest points between two edges.
- ipctk.point_triangle_closest_point(p: numpy.ndarray[numpy.float64[3, 1]], t0: numpy.ndarray[numpy.float64[3, 1]], t1: numpy.ndarray[numpy.float64[3, 1]], t2: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[2, 1]] ¶
Compute the barycentric coordinates of the closest point on the triangle.
Closet Points Jacobians¶
- ipctk.point_edge_closest_point_jacobian(p: numpy.ndarray[numpy.float64[m, 1]], e0: numpy.ndarray[numpy.float64[m, 1]], e1: numpy.ndarray[numpy.float64[m, 1]]) numpy.ndarray[numpy.float64[m, 1]] ¶
Compute the Jacobian of the closest point on the edge.
- ipctk.edge_edge_closest_point_jacobian(ea0: numpy.ndarray[numpy.float64[3, 1]], ea1: numpy.ndarray[numpy.float64[3, 1]], eb0: numpy.ndarray[numpy.float64[3, 1]], eb1: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[2, 12]] ¶
Compute the Jacobian of the closest points between two edges.
- ipctk.point_triangle_closest_point_jacobian(p: numpy.ndarray[numpy.float64[3, 1]], t0: numpy.ndarray[numpy.float64[3, 1]], t1: numpy.ndarray[numpy.float64[3, 1]], t2: numpy.ndarray[numpy.float64[3, 1]]) numpy.ndarray[numpy.float64[2, 12]] ¶
Compute the Jacobian of the closest point on the triangle.