(batch_data, rotation_angle)
return rotated_data
Rotate the point cloud along up direction with certain angle.
        Input:
          BxNx3 array, original batch of point clouds
        Return:
          BxNx3 array, rotated batch of point clouds
Rotate the point cloud along up direction with certain angle.
        Input:
          BxNx3 array, original batch of point clouds
        Return:
          BxNx3 array, rotated batch of point clouds
Rotate the point cloud along up direction with certain angle . Input : BxNx3 array original batch of point clouds Return : BxNx3 array rotated batch of point clouds
def rotate_point_cloud_by_angle(batch_data, rotation_angle):
    """ Rotate the point cloud along up direction with certain angle.
        Input:
          BxNx3 array, original batch of point clouds
        Return:
          BxNx3 array, rotated batch of point clouds
    """
    rotated_data = np.zeros(batch_data.shape, dtype=np.float32)
    for k in range(batch_data.shape[0]):
        # rotation_angle = np.random.uniform() * 2 * np.pi
        cosval = np.cos(rotation_angle)
        sinval = np.sin(rotation_angle)
        rotation_matrix = np.array(
            [[cosval, 0, sinval], [0, 1, 0], [-sinval, 0, cosval]]
        )
        shape_pc = batch_data[k, ...]
        rotated_data[k, ...] = np.dot(shape_pc.reshape((-1, 3)), rotation_matrix)
    return rotated_data
def rotate_point_cloud_by_angle ( batch_data , rotation_angle ) : rotated_data = np . zeros ( batch_data . shape , dtype = np . float32 ) for k in range ( batch_data . shape [ 0 ] ) : # rotation_angle = np.random.uniform() * 2 * np.pi cosval = np . cos ( rotation_angle ) sinval = np . sin ( rotation_angle ) rotation_matrix = np . array ( [ [ cosval , 0 , sinval ] , [ 0 , 1 , 0 ] , [ - sinval , 0 , cosval ] ] ) shape_pc = batch_data [ k , ... ] rotated_data [ k , ... ] = np . dot ( shape_pc . reshape ( ( - 1 , 3 ) ) , rotation_matrix ) return rotated_data