@@ -4,6 +4,7 @@ import RealityKit
44internal import VRMKit
55internal import VRMRealityKit
66
7+ // TODO: Migrate to SwiftUI exampe
78@available ( iOS 18 . 0 , * )
89final class RealityKitViewController : UIViewController , UIGestureRecognizerDelegate {
910 private var arView : ARView ?
@@ -15,7 +16,7 @@ final class RealityKitViewController: UIViewController, UIGestureRecognizerDeleg
1516 private var orbitPitch : Float = - 0.1
1617 private var orbitDistance : Float = 2
1718 private var orbitTarget = SIMD3 < Float > ( 0 , 0.8 , 0 )
18- private var currentExpression : RKExpression = . neutral
19+ private var currentExpression : Expression = . neutral
1920
2021 override func viewDidLoad( ) {
2122 super. viewDidLoad ( )
@@ -52,7 +53,7 @@ final class RealityKitViewController: UIViewController, UIGestureRecognizerDeleg
5253 segmentedControl. translatesAutoresizingMaskIntoConstraints = false
5354 view. addSubview ( segmentedControl)
5455
55- let expressionItems = RKExpression . allCases. map { $0. displayName }
56+ let expressionItems = Expression . allCases. map { $0. displayName }
5657 let expressionSegmentedControl = UISegmentedControl ( items: expressionItems)
5758 expressionSegmentedControl. selectedSegmentIndex = 0
5859 expressionSegmentedControl. addTarget ( self , action: #selector( expressionSegmentChanged ( _: ) ) , for: . valueChanged)
@@ -73,7 +74,7 @@ final class RealityKitViewController: UIViewController, UIGestureRecognizerDeleg
7374 }
7475
7576 @objc private func expressionSegmentChanged( _ sender: UISegmentedControl ) {
76- let expression = RKExpression . allCases [ sender. selectedSegmentIndex]
77+ let expression = Expression . allCases [ sender. selectedSegmentIndex]
7778 loadedEntity? . setBlendShape ( value: 0.0 , for: . preset( currentExpression. preset) )
7879 currentExpression = expression
7980 loadedEntity? . setBlendShape ( value: 1.0 , for: . preset( currentExpression. preset) )
@@ -249,22 +250,3 @@ final class RealityKitViewController: UIViewController, UIGestureRecognizerDeleg
249250 return true
250251 }
251252}
252-
253- @available ( iOS 18 . 0 , * )
254- private enum RKExpression : String , CaseIterable {
255- case neutral, joy, angry, sorrow, fun
256-
257- var preset : BlendShapePreset {
258- switch self {
259- case . neutral: return . neutral
260- case . joy: return . joy
261- case . angry: return . angry
262- case . sorrow: return . sorrow
263- case . fun: return . fun
264- }
265- }
266-
267- var displayName : String {
268- return rawValue. capitalized
269- }
270- }
0 commit comments