获取 3d 对象边界

Get 3d object boundaries

应用程序如何确定 3d 对象的边界(只是一个框)?

举个例子

我需要此信息进行碰撞检测。

这是计算 3D 对象的最小值和最大值(边界框)的方法。

void BBox(GLpoint *p, int n_vert, GLpoint& p_max, GLpoint& p_min)
{
    p_min.x = p[0].x;
    p_min.y = p[0].y;
    p_min.z = p[0].z;

    p_max.x = p[0].x;
    p_max.y = p[0].y;
    p_max.z = p[0].z;

    for (int i=1; i<n_vert; i++)
    {
        p_min.x = MIN(p_min.x, p[i].x);
        p_min.y = MIN(p_min.y, p[i].y);
        p_min.z = MIN(p_min.z, p[i].z);

        p_max.x = MAX(p_max.x, p[i].x);
        p_max.y = MAX(p_max.y, p[i].y);
        p_max.z = MAX(p_max.z, p[i].z);
    }
}