?9,W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV Safe-Inferredscalar multiplication  dot product #euclidean distance between p and q +Squared euclidean distance between p and q  W    WNone ?Class that indicates that something can be transformable using  an affine transformation =Basic linear algebra to support affine transformations in 2D %Type to represent a matrix, form is:  [ [ a11, a12, a13 ]  [ a21, a22, a23 ]  [ a31, a32, a33 ] ] Point based geometries NA class that defines a point2 functor. This defines that every operation that I we can do on a point we can also do on instances of this class. i.e. by 2 applying the operation on the underlying points. 7given a single list of 9 elements, construct a Matrix3 ?Given a 3x3 matrix as a list of lists, convert it to a Matrix3 IGather the elements of the matrix in one long list (in row by row order) X6Everything that is built from points is transformable YPoints are transformable  Z[\]X^Y_`a      Z[\]X^Y_`aNone:A class of objects for which we can compute a boundingbox Bounding boxes KNote that a bounding box is always axis parallel, so rotating may have not  | the expected effect !)get the bounding box of a list of things  !"#$%&'bcd !"#$%&'! $%&'"#  !"#$%&'bcdNone)get the point at time t (t in [0,1]) ,$The length of the line-like segment - Polylines /An infinite line 1BA simple line segment in 2D consisint of a start and an end-point 5Constructing polylines 6(functions on Linesegments and Polylines 9Linear interpolation / points on line segments etc. /simple linear interpolation, assuming t in [0,1] ()*+,-./0123456789:;efghijklmno()*+,-./0123456789:;1234/0-.56789:;*+,()()*+,-./0123456789:;efghijklmnoNone<3A multipolygon consists of several simple polygons >MSimple polygons, i.e. polygons consisting of a sequence of points (vertices) N | such that the edges do not intersect. Simple polygons do not contain holes @ Polygons GClass that defines what a polygon is. Note that it is assumed that the 4 first and the last point are *NOT* the same point. B3default implementation assumes points are in order p'Bounding boxes can be used as polygons <=>?@ABCDpqrstuv <=>?@ABCD @ABCD>?<= <=>?@ABCDpqrstuvNone Efunctions on circles KClass expressing functions that circlelike objects all have. Like a center O and a radius. Minimal implementation is either getCircle or center and radius K=A disc in the plane (i.e. a circle inclusiding its contents) NA circle in the plane w(Checking if points lie in or on a circle/disc Squared distance to the center P,whether or not p lies in OR on the circle c Q3whether or not p lies strictly inside the circle c R$whether or not p lies on the circle S@whether or not a point lies in a disc: this includes its border T4whether or not a point lies strictly inside a disc. EFGHIJKLMNOwPQRSTxyz{EFGHIJKLMNOPQRSTNOKLMEFGHIJPQRST EFGHIJKLMNOwPQRSTxyz{NoneUIA class to represent that a pair of geometry objects (both parameterized  over a) can be intersected. |Orepresents the intersection of a circle and an infinite line (as LineSegment ) }Intersection is symetrical A instance AreIntersectable g h a => AreIntersectable h g a where 5 intersectionPoints h g = intersectionPoints g h UV|~}UVUVUV|~}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~hgeometry-0.1.1.0Data.Geometry.PointData.Geometry.GeometryData.Geometry.BoundingBoxData.Geometry.LineData.Geometry.PolygonData.Geometry.CircleData.Geometry.SetOperationsPoint2'Point2|+||-||*||@|getXgetYdistl22distIsTransformable transformWithMatrix3Vec3 HasPointspointsIsPoint2Functorp2fmapmatrix3FromListmatrix3FromLists matrix3ToListmatrix3ToListsidentityMatrix3 IsBoxable boundingBox bbFromList BoundingBox2' BoundingBox2 lowerLeft upperRight bbFromPoints mergeBoxeswidthheightbbLeftbbRightbbTopbbBottomLineLikepointAt HasLengthPMlength Polyline2' Polyline2Line2'Line2 LineSegment2' LineSegment2 startPointendPointpolyLine isSimpleLine toSimpleLinetoSimpleLineOptionlinearinRange onLineSegment MultiPolygon' MultiPolygonSimplePolygon' SimplePolygon IsPolygonverticesedgesisSimple containsHoles IsCircleLike getCirclecenterradiusdistancedistanceToCenterDisc2'Disc2borderCircle2'Circle2inCircle insideCircleonCircleinDisc insideDiscAreIntersectableintersectionPoints$fFunctorPoint2'tranformPointBased$fIsTransformablePoint2' v3FromListv3ToList multiply3transformPoint$fIsTransformableg$fFunctorMatrix3 $fFunctorVec3$fHasPointsPoint2' $fIsBoxablep$fHasPointsBoundingBox2'$fIsPoint2FunctorBoundingBox2'$fLineLikeLineSegment2'$fHasLengthPolyline2'$fHasLengthLineSegment2'$fHasPointsPolyline2'$fIsPoint2FunctorPolyline2'$fHasPointsLine2'$fIsPoint2FunctorLine2'$fFunctorLine2'$fHasPointsLineSegment2'$fIsPoint2FunctorLineSegment2'$fFunctorLineSegment2'$fIsPolygonBoundingBox2'$fIsPoint2FunctorMultiPolygon'$fIsPolygonMultiPolygon'$fHasPointsMultiPolygon'$fIsPoint2FunctorSimplePolygon'$fIsPolygonSimplePolygon'$fHasPointsSimplePolygon' l22ToCenter$fIsCircleLikeDisc2'$fIsCircleLikeCircle2'$fHasPointsDisc2'$fHasPointsCircle2' circleAndLine($fAreIntersectableCircle2'LineSegment2'a!$fAreIntersectableCircle2'Line2'a%$fAreIntersectableCircle2'Polyline2'a