Spaces:
Running
on
Zero
Running
on
Zero
/* | |
* Serialize a voxel grid | |
* | |
* Copyright (C) 2024, Jianfeng XIANG <[email protected]> | |
* All rights reserved. | |
* | |
* Licensed under The MIT License [see LICENSE for details] | |
* | |
* Written by Jianfeng XIANG | |
*/ | |
/** | |
* Z-order encode 3D points | |
* | |
* @param x [N] tensor containing the x coordinates | |
* @param y [N] tensor containing the y coordinates | |
* @param z [N] tensor containing the z coordinates | |
* | |
* @return [N] tensor containing the z-order encoded values | |
*/ | |
torch::Tensor | |
z_order_encode( | |
const torch::Tensor& x, | |
const torch::Tensor& y, | |
const torch::Tensor& z | |
); | |
/** | |
* Z-order decode 3D points | |
* | |
* @param codes [N] tensor containing the z-order encoded values | |
* | |
* @return 3 tensors [N] containing the x, y, z coordinates | |
*/ | |
std::tuple<torch::Tensor, torch::Tensor, torch::Tensor> | |
z_order_decode( | |
const torch::Tensor& codes | |
); | |
/** | |
* Hilbert encode 3D points | |
* | |
* @param x [N] tensor containing the x coordinates | |
* @param y [N] tensor containing the y coordinates | |
* @param z [N] tensor containing the z coordinates | |
* | |
* @return [N] tensor containing the Hilbert encoded values | |
*/ | |
torch::Tensor | |
hilbert_encode( | |
const torch::Tensor& x, | |
const torch::Tensor& y, | |
const torch::Tensor& z | |
); | |
/** | |
* Hilbert decode 3D points | |
* | |
* @param codes [N] tensor containing the Hilbert encoded values | |
* | |
* @return 3 tensors [N] containing the x, y, z coordinates | |
*/ | |
std::tuple<torch::Tensor, torch::Tensor, torch::Tensor> | |
hilbert_decode( | |
const torch::Tensor& codes | |
); | |