import SwiftUI

struct ContentView: View {
    // @StateObject 表示这个对象是视图的状态的一部分，当对象更新时视图会重新渲染
    @StateObject var arViewModel = ARViewModel()
    
    // @State 表示这个变量是视图的本地状态，当它改变时视图会重新渲染
    @State var addCube = false
    
    var body: some View {
        
        ZStack(alignment: .bottom){
            // ARViewContainer 用于显示 AR 场景
            // 将 addCube 绑定传递给它，这样 ARViewContainer 可以响应状态变化
            ARViewContainer(addCube: $addCube)
            
            // 创建一个按钮
            Button(action: {
                // 按钮点击时执行的操作
                addCube = true  // 将 addCube 状态设置为 true
                print("addCube \(addCube)")  // 打印当前状态用于调试
            }, label: {
                // 按钮的标签视图
                Text("Put a Cube")  // 显示"Put a Cube"文本
            })
            .buttonStyle(.bordered)  // 设置按钮样式为带边框的样式
            .padding()  // 为按钮添加内边距
        }
        .environmentObject(arViewModel) // 将 arViewModel 作为环境对象传递给子视图
    }
}
