Over paths are made by combining direct paths end points and apices in sets of two edges.
1. A Mesh Line with two edges sharing one central vertex is duplicated as many times as the number of direct paths. Start Location and Offset parameters are irrelevant, as vertices position will be set afterwards. It is to notice that the Duplicate Elements node is set in Instance domain. This way, duplicated edges remain connected. Whereas in Edge domain, this connection is lost as two vertices are created at the junction. So the three vertices of copy number $i$ are with indexes $3i$, $3i+1$ and $3i+2$.
2. Through a Realize Instances node, instances are made independent sets of edges. Subsequent Set position nodes are thus in Point domain.
3. Point H is copied as the first vertex of the $i^\mathrm{th}$ copy.
3.1. Its index matches the selection mask $3i$.
3.2. Point H position is recovered with a Sample Index node set in Edge domain, looking for the $i^\mathrm{th}$ direct path. As point H was recorded at second position by the DirectPath node group, its coordinates are provided by the socket Position 2 of the connected Edge Vertices node.
4. The apex (labelled T) is copied as the second vertex of the $i^\mathrm{th}$ copy.
4.1. Its index matches the selection mask $3i+1$.
4.2. Point T position is recovered with a Sample Index node set in Point domain, looking for the $i^\mathrm{th}$ apex.
5. Point A is copied as the third and last vertex of the $i^\mathrm{th}$ copy.
5.1. Its index matches the selection mask $3i+2$.
5.2. Its position is recovered as for point H, but from the socket Position 1.
6. The normal to the plane defined by (H,T,A) is computed as $\vec{TA} \wedge \vec{HT}$. It is stored in an attribute named normal, to be used to rotate the Bezier curves handles.