face_tangent_bundle#

iskra.directional.face_tangent_bundle(vertices: Tensor, faces: Tensor, edge_flaps: Tensor) tuple[Tensor, Tensor, Tensor, Tensor][SOURCE]#

Construct a tangent bundle for a face-based vector field.

Parameters:
  • vertices (Tensor[Float, [V, Dim]]) – Mesh vertices. Dim is either 2 or 3.

  • faces (Tensor[Int64, [F, 3]]) – Triangle faces.

  • edge_flaps (Tensor[Int64, [E, 2]]) – Unique edges in the mesh. Use iskra.edge_flaps to obtain it.

Returns:
  • (Tensor[Float, [F, 3]]) – Face tangents.

  • ​​ (Tensor[Float, [F, 3]]) – Face binormals.

  • ​​​ (Tensor[Complex, [E]]) – Discrete Levi-Civita connection that transports vectors from face edge_flaps[:, 0] to face edge_flaps[:, 1].

  • ​​​​ (Tensor[Complex, [E, 2]]) – Projection operator. Given a directional in the tangent space of a dual edge, it transports it into the tangent spaces of edge_flaps[:, 0], resp. edge_flaps[:, 1].