This module containes the logic for properly placing double bonds, especiall the pi-part of those bonds. We use a simple heuristic to place the pi-bond: In case of a double bond with three substituents, the pi bond will be placed on the same side of the sigma bond as the lone substituent. In case of a double bond with four substituents, the dominant cycle (if any; see below) will be determined, and the pi-bond will be placed within that cycle. In all other cases, a symmetric double with both lines being displaced from the center by the same amount of space, will be displayed. In order to define the dominant cycle to which a double bond belongs, rings will be sorted by number of multiple bonds and then by ring size. Six membered rings will always be preferred over other ring sizes.
parallelLine : Double -> Bool -> Point Id -> Point Id -> (Point Id, Point Id)ParallelDistance : CoreDims => DoubleDistance between the lines of a double or triple bond.
HalfParallelDistance : CoreDims => DoubleHalf the distance between the lines of a double or triple bond.
dblBond : CoreDims => CDIGraph k -> Fin k -> Fin k -> Point Id -> Point Id -> Point Id -> Point Id -> Vect 4 (Point Id)