This is slightly more involved than initially thought. Kinks can be "caused" by the offsets in FractionalLengthData, but they could also come from the ContinuousLine itself. The different Flatteners need to handle kinks differently. E.g. the MaxDeviation flattener should consider the directions on each side of a kink separately and not try to "cross over" the kink in a smooth way, because that is not possible. The NumSegments flattener should probably ignore any kink data.
This is slightly more involved than initially thought. Kinks can be "caused" by the offsets in FractionalLengthData, but they could also come from the ContinuousLine itself. The different Flatteners need to handle kinks differently. E.g. the MaxDeviation flattener should consider the directions on each side of a kink separately and not try to "cross over" the kink in a smooth way, because that is not possible. The NumSegments flattener should probably ignore any kink data.