Swiftgram/submodules/LottieMeshSwift/Sources/CapturedGeometry.swift
2021-10-12 15:07:00 +04:00

63 lines
1.5 KiB
Swift

import Foundation
import UIKit
final class CapturedGeometryNode {
final class DisplayItem {
enum Display {
enum Style {
enum GradientType {
case linear
case radial
}
case color(color: UIColor, alpha: CGFloat)
case gradient(colors: [UIColor], positions: [CGFloat], start: CGPoint, end: CGPoint, type: GradientType)
}
struct Fill {
var style: Style
var fillRule: CGPathFillRule
}
struct Stroke {
var style: Style
var lineWidth: CGFloat
var lineCap: CGLineCap
var lineJoin: CGLineJoin
var miterLimit: CGFloat
}
case fill(Fill)
case stroke(Stroke)
}
let path: CGPath
let display: Display
init(path: CGPath, display: Display) {
self.path = path
self.display = display
}
}
var transform: CATransform3D
let alpha: CGFloat
let isHidden: Bool
let displayItem: DisplayItem?
let subnodes: [CapturedGeometryNode]
init(
transform: CATransform3D,
alpha: CGFloat,
isHidden: Bool,
displayItem: DisplayItem?,
subnodes: [CapturedGeometryNode]
) {
self.transform = transform
self.alpha = alpha
self.isHidden = isHidden
self.displayItem = displayItem
self.subnodes = subnodes
}
}