  Text frame representation. This can represent a simple text rectangle (eq. UITextView text content),
  as well as a complex frame defined by CGPath
  */
-class TextPathFrame {
+public class TextPathFrame {
     
     /// Frame shape path (eq. textfield bounds rect)
-    fileprivate(set) var path: CGPath
+    public fileprivate(set) var path: CGPath
     
     /// Text frame lines
-    fileprivate(set) var lines = [TextPathLine]()
+    public fileprivate(set) var lines = [TextPathLine]()
     
     init(path: CGPath) {
         self.path = path

    fileprivate weak var line: TextPathLine?
    
    /// Get glyph attributes as defined in source string
    var attributes: [String:Any]? {
        return line?.attributes(ForGlyph: self)
    }
    

/**
 Class represents single character representation - glyph
 */
public class TextPathGlyph {
    public typealias Index = String.UnicodeScalarView.Index
    
    /// Character index in source string unicode view
    public fileprivate(set) var index: Index
    
    /// Glyph path defined in glyph coordinates
    public fileprivate(set) var path: CGPath
    
    /// Glyph path position (top left corner) in line space
    public fileprivate(set) var position: CGPoint
    
    /// Glyph line advance
    public fileprivate(set) var advance = CGSize.zero
    
    /// Glyph origin offset (x component is a glyph origin offset, y component is an offset to baseline)
    public fileprivate(set) var originOffset = CGPoint.zero
    
    /// Glyph line run index
    fileprivate var lineRun: Int = 0
