import SwiftUI
import Vision

struct ContentView: View {
   @State private var faceOrientation: String = "Calculating..."

   var body: some View {
      VStack {
         Image(uiImage: UIImage(named: "girlup")!)
            .resizable()
            .scaledToFit()
         Text(faceOrientation)
            .padding()
         Spacer()
      }
      .padding()
      .task {
         let imageURL = Bundle.main.url(forResource: "girlup", withExtension: "png")
         if let imageURL = imageURL {
            do {
               let request = DetectFaceRectanglesRequest()
               let observations = try await request.perform(on: imageURL)

               var text = ""
               if let observation = observations.first {
                  let pitch = observation.pitch.converted(to: .degrees).value
                  text += "Pitch: \(pitch)\n"
                  let yaw = observation.yaw.converted(to: .degrees).value
                  text += "Yaw: \(yaw)\n"
                  let roll = observation.roll.converted(to: .degrees).value
                  text += "Roll: \(roll)\n\n"
               }
               faceOrientation = text
            } catch {
               print("Error performing the request: \(error)")
            }
         }
      }
   }
}