-record(point,{ point_type :: any(), x :: float(), y :: float(), z :: float() | undefined, m :: float() | undefined }). -record(multi_point,{ point_type :: any(), points :: [ewkb:point(ewkb:point_type())] }). -record(line_string,{ point_type :: any(), points :: [ewkb:point(ewkb:point_type())] }). -record(multi_line_string,{ point_type :: any(), line_strings :: [ewkb:line_string(ewkb:point_type())] }). -record(circular_string,{ point_type :: any(), points :: [ewkb:point(ewkb:point_type())] }). -record(compound_curve,{ point_type :: any(), lines :: [ewkb:basic_string(ewkb:point_type())] }). -record(multi_curve,{ point_type :: any(), curves :: [ewkb:curve(ewkb:point_type())] }). -record(polygon,{ point_type :: any(), rings :: [ewkb:line_string(ewkb:point_type())] }). -record(multi_polygon,{ point_type :: any(), polygons :: [ewkb:polygon(ewkb:point_type())] }). -record(triangle,{ point_type :: any(), rings :: [ewkb:line_string(ewkb:point_type())] }). -record(curve_polygon,{ point_type :: any(), rings :: [ewkb:curve(ewkb:point_type())] }). -record(polyhedral_surface,{ point_type :: any(), polygons :: [ewkb:polygon(ewkb:point_type())] }). -record(multi_surface,{ point_type :: any(), surfaces :: [ewkb:surface(ewkb:point_type())] }). -record(tin,{ point_type :: any(), triangles :: [ewkb:triangle(ewkb:point_type())] }).