     {
         self.origin = origin
         self.size = size
+    }
+
+    /**
+     Initializes a rect structure from a Core Graphics rect.
+
+     - parameter CGRect:    A Core Graphics rect.
+     - parameter majorAxis: The major axis to use.
+     */
+    public init(CGRect: CoreGraphics.CGRect, majorAxis: Axis)
+    {
+        self.init(
+            origin: Point(CGPoint: CGRect.origin, majorAxis: majorAxis),
+            size: Size(CGSize: CGRect.size, majorAxis: majorAxis)
+        )
     }
 
     // MARK: - Components

        self.minor = minor
    }

    // MARK: - Coordinates

    /// The major dimension of the size.

        self.minor = minor
    }

    /**
     Initializes a point structure from a Core Graphics point.

     - parameter CGPoint:   A Core Graphics point.
     - parameter majorAxis: The major axis to use.
     */
    public init(CGPoint: CoreGraphics.CGPoint, majorAxis: Axis)
    {
        switch majorAxis
        {
        case .Horizontal:
            self = Point(major: CGPoint.x, minor: CGPoint.y)
        case .Vertical:
            self = Point(major: CGPoint.y, minor: CGPoint.x)
        }
    }

    // MARK: - Coordinates

    /// The major coordinate of the point.
