/* Copyright 2021 The TensorFlow Authors. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================
*/

package org.tensorflow.lite.examples.poseestimation.data

// 导入 Android 的 RectF 类，用于表示矩形区域
import android.graphics.RectF

// Person 数据类用于表示一个人体，包含其识别信息、关键点、边界框等
// 适用于多人体姿态估计应用场景
data class Person(
    // id 表示该人体的唯一标识符，默认为 -1。每个人体有一个唯一的 id，便于区分不同的人体
    var id: Int = -1,

    // keyPoints 表示该人体的关键点集合，是一个包含多个 KeyPoint 对象的列表
    // 每个 KeyPoint 表示人体的一个部位及其坐标和置信度
    val keyPoints: List<KeyPoint>,

    // boundingBox 表示该人体的边界框，是一个 RectF 对象
    // 仅在使用 MoveNet MultiPose 模型时返回边界框信息
    // 这个矩形框用于表示人体的大致位置和区域
    val boundingBox: RectF? = null,  // MoveNet MultiPose 返回的边界框，可为 null

    // score 表示该人体的置信度分数，值越高表示模型对该人体的识别和预测的可信度越高
    val score: Float
)
