úÎÁ@     2since there are a lot of triangulation algorithms * a triangulation function can be passed  some triangulation algorithms on't support polygons with holes \ These polygons with (nested) holes have to be cut so that they consist of only one outline F I.e. the chars a,b,d,e,g,o,p,q contain holes tat have to be deleted. _cut a polygon at a good position and insert the contained hole-polygon with opposite direction mmake sure that direction (clockwise or ccw) of polygons alternates depending on the nesting number c of poly  f should be the funtion to test contains ? the trees then are the hierarchy of containedness of outlines \how many positions to rotate a polygon until the start point is nearest to some other point 0 call i.e. with nearest (3,4) [(0,0),(1,2), ... ] 0 0 Sreturns True iff the first point of the first polygon is inside the second poylgon nA point is inside a polygon if it has an odd number of intersections with the boundary (Jordan Curve theorem) Ithe direction of a polygon can be obtained by looking at a maximal point " returns True if counterclockwise  False if clockwise          triangulation-0.2$Graphics.Triangulation.Triangulation'Graphics.Triangulation.KETTriangulationF2TreeNodeTriangulationFunctionPoints triangulate deleteHolesembed alternate generateTrees treesList insertTrees insertTree rotatePolynearest insidePoly pointInsidepolygonDirection isLeftTurnketTricombinationsOfisRightTurnOrOnarea2scanisEarreflexVerticesangles