def __getitem__()

in datasets/depth_dataset.py [0:0]


    def __getitem__(self, idx):

        cfg = self.cfg
        # TODO: this doesn't yet handle the case where the length of datasets
        # could be different.
        if cfg["DATA_TYPE"] == "point_vox":
            item = {"data": [], "data_valid": [], "data_moco": [], "vox": [], "vox_moco": []}

            data, valid = self.load_data(idx)
            item["data"].append(data)
            item["data_moco"].append(np.copy(data))
            item["vox"].append(np.copy(data))
            item["vox_moco"].append(np.copy(data))
            item["data_valid"].append(1 if valid else -1)
        else:
            item = {"data": [], "data_moco": [], "data_valid": [], "data_idx": []}
            
            data, valid = self.load_data(idx)
            item["data"].append(data)
            item["data_moco"].append(np.copy(data))
            item["data_valid"].append(1 if valid else -1)

        ### Make copies for moco setting
        item["label"] = []
        item["label"].append(idx)

        ### Apply the transformation here
        if (cfg["DATA_TYPE"] == "point_vox"):
            tempitem = {"data": item["data"]}
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"])
            item["data"] = tempdata["data"]

            tempitem = {"data": item["data_moco"]}
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"])
            item["data_moco"] = tempdata["data"]

            tempitem = {"data": item["vox"]}
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"], vox=True)
            coords = tempdata["data"][0][:,:3]
            feats = tempdata["data"][0][:,3:6]*255.0#np.ones(coords.shape)*255.0
            labels = np.zeros(coords.shape[0]).astype(np.int32)
            item["vox"] = [self.toVox(coords, feats, labels)]
            
            tempitem = {"data": item["vox_moco"]}
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"], vox=True)
            coords = tempdata["data"][0][:,:3]
            feats = tempdata["data"][0][:,3:6]*255.0#np.ones(coords.shape)*255.0
            labels = np.zeros(coords.shape[0]).astype(np.int32)                    
            item["vox_moco"] = [self.toVox(coords, feats, labels)]               
        else:
            tempitem = {"data": item["data"]}
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"], vox=cfg["VOX"])
            if cfg["VOX"]:
                coords = tempdata["data"][0][:,:3]
                feats = tempdata["data"][0][:,3:6]*255.0
                labels = np.zeros(coords.shape[0]).astype(np.int32)
                item["data"] = [self.toVox(coords, feats, labels)]
            else:
                item["data"] = tempdata["data"]
    
            tempitem = {"data": item["data_moco"]}                
            tempdata = get_transform3d(tempitem, cfg["POINT_TRANSFORMS"], vox=cfg["VOX"])
            if cfg["VOX"]:
                coords = tempdata["data"][0][:,:3]
                feats = tempdata["data"][0][:,3:6]*255.0#np.ones(coords.shape)*255.0
                labels = np.zeros(coords.shape[0]).astype(np.int32)                    
                item["data_moco"] = [self.toVox(coords, feats, labels)]
            else:
                item["data_moco"] = tempdata["data"]

        return item