|
@@ -1,7 +1,7 @@
|
|
|
-type point_type() :: '2d' | '3d' | '2dm' | '3dm'.
|
|
|
|
|
|
-record(point,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
x :: float(),
|
|
|
y :: float(),
|
|
|
z :: float(),
|
|
@@ -11,77 +11,77 @@
|
|
|
-type point(PointType) :: #point{ point_type :: PointType }.
|
|
|
|
|
|
-record(multi_point,{
|
|
|
- point_type :: point_type() ,
|
|
|
+ point_type :: any(),
|
|
|
points :: [point(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type multi_point(PointType) :: #multi_point{ point_type :: PointType }.
|
|
|
|
|
|
-record(line_string,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
points :: [point(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type line_string(PointType) :: #line_string{ point_type :: PointType }.
|
|
|
|
|
|
-record(multi_line_string,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
line_strings :: [line_string(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type multi_line_string(PointType) :: #multi_line_string{ point_type :: PointType }.
|
|
|
|
|
|
-record(circular_string,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
points :: [point(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type basic_string(PointType) :: #circular_string{ point_type :: PointType } | #line_string{ point_type :: PointType }.
|
|
|
|
|
|
-record(compound_curve,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
lines :: [basic_string(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type curve(PointType) :: #circular_string{ point_type :: PointType } | #line_string{ point_type :: PointType } | #compound_curve{ point_type :: PointType }.
|
|
|
|
|
|
-record(multi_curve,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
curves :: [curve(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type multi_curve(PointType) :: #multi_curve{ point_type :: PointType }.
|
|
|
|
|
|
-record(polygon,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
rings :: [line_string(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type polygon(PointType) :: #polygon{ point_type :: PointType }.
|
|
|
|
|
|
-record(multi_polygon,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
polygons :: [polygon(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type multi_polygon(PointType) :: #multi_polygon{ point_type :: PointType }.
|
|
|
|
|
|
-record(triangle,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
rings :: [line_string(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type triangle(PointType) :: #triangle{ point_type :: PointType }.
|
|
|
|
|
|
-record(curve_polygon,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
rings :: [curve(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type curve_polygon(PointType) :: #curve_polygon{ point_type :: PointType }.
|
|
|
|
|
|
-record(polyhedral_surface,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
polygons :: [polygon(point_type())]
|
|
|
}).
|
|
|
|
|
@@ -90,14 +90,14 @@
|
|
|
-type surface(PointType) :: polygon(PointType) | curve_polygon(PointType) | polyhedral_surface(PointType).
|
|
|
|
|
|
-record(multi_surface,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
surfaces :: [surface(point_type())]
|
|
|
}).
|
|
|
|
|
|
-type multi_surface(PointType) :: #multi_surface{ point_type :: PointType }.
|
|
|
|
|
|
-record(tin,{
|
|
|
- point_type :: point_type(),
|
|
|
+ point_type :: any(),
|
|
|
triangles :: [triangle(point_type())]
|
|
|
}).
|
|
|
|