EVA3D icon indicating copy to clipboard operation
EVA3D copied to clipboard

Predefined boxes

Open shash29-dev opened this issue 11 months ago • 0 comments

Thanks for the great work. Can you please elaborate on how you divide up the volume into boxes?

def predefined_bbox(self, j, only_cur_index=False):
        if j == 15:
            xyz_min = np.array([-0.0901, 0.2876, -0.0891])
            xyz_max = np.array([0.0916, 0.5555+0.04, 0.1390])
            xyz_min -= np.array([0.05, 0.05, 0.05])
            xyz_max += np.array([0.05, 0.05, 0.05])
            cur_index = self.smpl_index_by_joint([15])
        elif j == 12:
            xyz_min = np.array([-0.1752, 0.0208, -0.1198]) # combine 12 and 9
            xyz_max = np.array([0.1724, 0.2876, 0.1391])
            cur_index = self.smpl_index_by_joint([9, 13, 14, 6, 16, 17, 12, 15])
        elif j == 9 and only_cur_index:
            xyz_min = None
            xyz_max = None
            cur_index = self.smpl_index_by_joint([9, 13, 14, 6, 16, 17, 3])
        elif j == 6:
            xyz_min = np.array([-0.1569, -0.1144, -0.1095])
            xyz_max = np.array([0.1531, 0.0208, 0.1674])
            cur_index = self.smpl_index_by_joint([3, 6, 0, 9])
        elif j == 3:
            xyz_min = np.array([-0.1888, -0.3147, -0.1224])
            xyz_max = np.array([0.1852, -0.1144, 0.1679])
            cur_index = self.smpl_index_by_joint([3, 0, 1, 2, 6])
        elif j == 18:
            xyz_min = np.array([0.1724, 0.1450, -0.0750])
            xyz_max = np.array([0.4321, 0.2758, 0.0406])
            cur_index = self.smpl_index_by_joint([13, 18, 16])
        elif j == 20:
            xyz_min = np.array([0.4321, 0.1721, -0.0753])
            xyz_max = np.array([0.6813, 0.2668, 0.0064])
            cur_index = self.smpl_index_by_joint([16, 20, 18])
        elif j == 22:
            xyz_min = np.array([0.6813, 0.1882, -0.1180])
            xyz_max = np.array([0.8731, 0.2445, 0.0461])
            cur_index = self.smpl_index_by_joint([22, 20, 18])
        elif j == 19:
            xyz_min = np.array([-0.4289, 0.1426, -0.0785])
            xyz_max = np.array([-0.1752, 0.2754, 0.0460])
            cur_index = self.smpl_index_by_joint([14, 17, 19])
        elif j == 21:
            xyz_min = np.array([-0.6842, 0.1705, -0.0780])
            xyz_max = np.array([-0.4289, 0.2659, 0.0059])
            cur_index = self.smpl_index_by_joint([17, 19, 21])
        elif j == 23:
            xyz_min = np.array([-0.8720, 0.1839, -0.1195])
            xyz_max = np.array([-0.6842, 0.2420, 0.0465])
            cur_index = self.smpl_index_by_joint([23, 21, 19])
        elif j == 4:
            xyz_min = np.array([0, -0.6899, -0.0849])
            xyz_max = np.array([0.1893, -0.3147, 0.1335])
            cur_index = self.smpl_index_by_joint([0, 1, 4])
        elif j == 7:
            xyz_min = np.array([0.0268, -1.0879, -0.0891])
            xyz_max = np.array([0.1570, -0.6899, 0.0691])
            cur_index = self.smpl_index_by_joint([4, 1, 7])
        elif j == 10:
            xyz_min = np.array([0.0625, -1.1591-0.04, -0.0876])
            xyz_max = np.array([0.1600, -1.0879+0.02, 0.1669])
            cur_index = self.smpl_index_by_joint([7, 10, 4])
        elif j == 5:
            xyz_min = np.array([-0.1935, -0.6964, -0.0883])
            xyz_max = np.array([0, -0.3147, 0.1299])
            cur_index = self.smpl_index_by_joint([0, 2, 5])
        elif j == 8:
            xyz_min = np.array([-0.1611, -1.0948, -0.0911])
            xyz_max = np.array([-0.0301, -0.6964, 0.0649])
            cur_index = self.smpl_index_by_joint([2, 5, 8])
        elif j == 11:
            xyz_min = np.array([-0.1614, -1.1618-0.04, -0.0882])
            xyz_max = np.array([-0.0632, -1.0948+0.02, 0.1680])
            cur_index = self.smpl_index_by_joint([8, 11, 5])
        else:
            xyz_min = xyz_max = cur_index = None

        if only_cur_index:
            return cur_index

        return xyz_min, xyz_max, cur_index

shash29-dev avatar Mar 22 '24 10:03 shash29-dev