From a77d6ce255f35f57b5580ecef0bc5723c4a59f9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomas=20Franze=CC=81n?= <tomas@tomasf.se>
Date: Sat, 21 Sep 2024 20:03:28 +0200
Subject: [PATCH] Make GeometryAlignment init public

---
 Sources/SwiftSCAD/Operations/Alignment/Alignment.swift | 4 ++--
 Sources/SwiftSCAD/Values/Axis/Axis.swift               | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/Sources/SwiftSCAD/Operations/Alignment/Alignment.swift b/Sources/SwiftSCAD/Operations/Alignment/Alignment.swift
index fd06bc7..9713238 100644
--- a/Sources/SwiftSCAD/Operations/Alignment/Alignment.swift
+++ b/Sources/SwiftSCAD/Operations/Alignment/Alignment.swift
@@ -18,7 +18,7 @@ public struct GeometryAlignment2D: Equatable, Sendable {
     internal let x: AxisAlignment?
     internal let y: AxisAlignment?
 
-    internal init(x: AxisAlignment? = nil, y: AxisAlignment? = nil) {
+    public init(x: AxisAlignment? = nil, y: AxisAlignment? = nil) {
         self.x = x
         self.y = y
     }
@@ -38,7 +38,7 @@ public struct GeometryAlignment3D: Equatable, Sendable {
     internal let y: AxisAlignment?
     internal let z: AxisAlignment?
 
-    internal init(x: AxisAlignment? = nil, y: AxisAlignment? = nil, z: AxisAlignment? = nil) {
+    public init(x: AxisAlignment? = nil, y: AxisAlignment? = nil, z: AxisAlignment? = nil) {
         self.x = x
         self.y = y
         self.z = z
diff --git a/Sources/SwiftSCAD/Values/Axis/Axis.swift b/Sources/SwiftSCAD/Values/Axis/Axis.swift
index 80c45d5..9e816a9 100644
--- a/Sources/SwiftSCAD/Values/Axis/Axis.swift
+++ b/Sources/SwiftSCAD/Values/Axis/Axis.swift
@@ -12,6 +12,13 @@ public enum Axis3D: Int, CaseIterable, Sendable {
     case y
     case z
 
+    public init(_ axis: Axis2D) {
+        switch axis {
+        case .x: self = .x
+        case .y: self = .y
+        }
+    }
+
     /// The unit vector pointing in the direction of the axis.
     ///
     /// This property returns a `Vector3D` representing the direction of the axis with a magnitude of 1. It is useful for operations that require understanding or manipulating the orientation of geometry in 3D space.