// // Copyright 2019 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // import UIKit enum ImageEditorError: Int, Error { case assertionError case invalidInput } enum ImageEditorItemType: Int { case test case stroke case text case sticker case blurRegions } // MARK: - // Represented in a "ULO unit" coordinate system // for source image. // // "ULO" coordinate system is "upper-left-origin". // // "Unit" coordinate system means values are expressed // in terms of some other values, in this case the // width and height of the source image. // // * 0.0 = left edge // * 1.0 = right edge // * 0.0 = top edge // * 1.0 = bottom edge typealias ImageEditorSample = CGPoint // MARK: - // Instances of ImageEditorItem should be treated // as immutable, once configured. class ImageEditorItem: NSObject { let itemId: String let itemType: ImageEditorItemType init(itemType: ImageEditorItemType) { self.itemId = UUID().uuidString self.itemType = itemType super.init() } init(itemId: String, itemType: ImageEditorItemType) { self.itemId = itemId self.itemType = itemType super.init() } // The scale with which to render this item's content // when rendering the "output" image for sending. func outputScale() -> CGFloat { return 1.0 } }