// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#pragma once

at::Tensor ROIAlign_3d_forward_cuda(const at::Tensor& input,
                                    const at::Tensor& rois,
                                    const float spatial_scale,
                                    const int pooled_depth,
                                    const int pooled_height,
                                    const int pooled_width,
                                    const int sampling_ratio);

at::Tensor ROIAlign_3d_backward_cuda(const at::Tensor& grad,
                                     const at::Tensor& rois,
                                     const float spatial_scale,
                                     const int pooled_depth,
                                     const int pooled_height,
                                     const int pooled_width,
                                     const int batch_size,
                                     const int channels,
                                     const int depth,
                                     const int height,
                                     const int width,
                                     const int sampling_ratio);

at::Tensor nms_3d_cuda(const at::Tensor boxes, float nms_overlap_thresh);

at::Tensor overlap_3d_cuda(const at::Tensor boxes_1, const at::Tensor boxes_2);
