def _augment_batch_data_level1(self, batch_data):
     if self.normal_channel:
         batch_data = utils.rotate_point_cloud_with_normal(batch_data)
     else:
         batch_data = utils.rotate_point_cloud(batch_data)
     # batch_data[:,:,:3] = utils.random_scale_point_cloud(batch_data[:,:,:3])
     batch_data[:, :, :3] = utils.jitter_point_cloud(batch_data[:, :, :3])
     if self.dropout_ratio > 0:
         batch_data = utils.random_point_dropout(
             batch_data, max_dropout_ratio=self.dropout_ratio)
     return batch_data
 def _augment_batch_data_level4(self, batch_data):
     if self.normal_channel:
         rotated_data = utils.rotate_point_cloud_with_normal(batch_data)
         rotated_data = utils.rotate_perturbation_point_cloud_with_normal(
             rotated_data)
     else:
         rotated_data = utils.rotate_point_cloud(batch_data)
         rotated_data = utils.rotate_perturbation_point_cloud(rotated_data)
     if self.dropout_ratio > 0:
         rotated_data = utils.random_point_dropout(
             rotated_data, max_dropout_ratio=self.dropout_ratio)
     return rotated_data
    def _augment_batch_data_level3(self, batch_data):
        if self.normal_channel:
            rotated_data = utils.rotate_point_cloud_with_normal(batch_data)
            rotated_data = utils.rotate_perturbation_point_cloud_with_normal(
                rotated_data)
        else:
            rotated_data = utils.rotate_point_cloud(batch_data)
            rotated_data = utils.rotate_perturbation_point_cloud(rotated_data)

        jittered_data = utils.random_scale_point_cloud(rotated_data[:, :, 0:3])
        jittered_data = utils.shift_point_cloud(jittered_data)
        jittered_data = utils.jitter_point_cloud(jittered_data)
        rotated_data[:, :, 0:3] = jittered_data
        if self.dropout_ratio > 0:
            rotated_data = utils.random_point_dropout(
                rotated_data, max_dropout_ratio=self.dropout_ratio)
        return rotated_data