def fk()

in empose/bodymodels/smpl.py [0:0]


    def fk(self, poses_body, betas, poses_root=None, trans=None, normalize_root=False, window_size=None):
        """Wrapper for self._fk to support windowed evaluation if required."""
        if window_size is not None:
            if normalize_root:
                raise ValueError("Are you sure you want to use root normalization with windowed evaluation?")

            n = poses_body.shape[0]
            n_windows = n // window_size + int(n % window_size > 0)

            vs, js = [], []
            for i in range(n_windows):
                sf = i * window_size
                ef = min((i + 1) * window_size, n)
                r = poses_root[sf:ef] if poses_root is not None else None
                t = trans[sf:ef] if trans is not None else None
                vertices, joints = self._fk(poses_body=poses_body[sf:ef], betas=betas[sf:ef], poses_root=r, trans=t,
                                            normalize_root=normalize_root)
                vs.append(vertices)
                js.append(joints)

            return torch.cat(vs, dim=0), torch.cat(js, dim=0)

        else:
            return self._fk(poses_body, betas, poses_root, trans, normalize_root)