Line Type

There is a Java enum LineType containing types you can annotate a line with.

Line annotation in LineType

        /** Before a type is determined */
        UNKNOWN,
        
        /** Not completely straight */
        STRAIGHT, //only a start and an end point

        /** only on one side of a line between the start and end point */
        CURVE_ARCH,

        /** On both sides of a line between the start and end point 
         * this is the rest category for lines */
        WAVE,

        /** Means that this is an arch and that it is concave compared to 1 or both 
         * neighbor points, meaning they are on the same side of the line as the 
         * arch */
        CONCAVE_ARCH,
        
        /** This line contains an inflection point, meaning the end points have 
         * different signed direction changes */
        INFLECTION_POINT,
        
        /** For multi lines, if 2 lines are added together */
        STRAIGHT_MULTI_LINE,