diff --git a/structs/Line2d.cs b/structs/Line2d.cs
new file mode 100644
index 0000000..33113a6
--- /dev/null
+++ b/structs/Line2d.cs
@@ -0,0 +1,29 @@
+namespace GeometriCS.structs
+{
+ ///
+ /// A line through a two-dimensional vector space.
+ ///
+ public class Line2d
+ {
+ ///
+ /// A point that lies on the line.
+ ///
+ public Vector2d PointOnLine { get; set; }
+
+ ///
+ /// Direction vector, along which all the points on the line lie.
+ ///
+ public Vector2d Direction { get; set; }
+
+ ///
+ /// Constructor for the line.
+ ///
+ /// Point that lies on the line.
+ /// Direction vector on the line.
+ public Line2d(Vector2d pointOnLine, Vector2d direction)
+ {
+ PointOnLine = pointOnLine;
+ Direction = direction;
+ }
+ }
+}
diff --git a/structs/Line3d.cs b/structs/Line3d.cs
new file mode 100644
index 0000000..886df73
--- /dev/null
+++ b/structs/Line3d.cs
@@ -0,0 +1,29 @@
+namespace GeometriCS.structs
+{
+ ///
+ /// A line through the R cubed space with double precision.
+ ///
+ public class Line3d
+ {
+ ///
+ /// A point that lies on the line.
+ ///
+ public Vector3d PointOnLine { get; set; }
+
+ ///
+ /// Direction vector, along which all the points on the line lie.
+ ///
+ public Vector3d Direction { get; set; }
+
+ ///
+ /// Constructor for the line.
+ ///
+ /// Point that lies on the line.
+ /// Direction vector on the line.
+ public Line3d(Vector3d pointOnLine, Vector3d direction)
+ {
+ PointOnLine = pointOnLine;
+ Direction = direction;
+ }
+ }
+}