image_framework_ymj/include/open3d/t/geometry/kernel/TriangleMesh.h

53 lines
1.9 KiB
C
Raw Normal View History

2024-12-06 16:25:16 +08:00
// ----------------------------------------------------------------------------
// - Open3D: www.open3d.org -
// ----------------------------------------------------------------------------
// Copyright (c) 2018-2023 www.open3d.org
// SPDX-License-Identifier: MIT
// ----------------------------------------------------------------------------
#pragma once
#include "open3d/core/Tensor.h"
namespace open3d {
namespace t {
namespace geometry {
namespace kernel {
namespace trianglemesh {
void NormalizeNormalsCPU(core::Tensor& normals);
void ComputeTriangleNormalsCPU(const core::Tensor& vertices,
const core::Tensor& triangles,
core::Tensor& normals);
void ComputeVertexNormalsCPU(const core::Tensor& triangles,
const core::Tensor& triangle_normals,
core::Tensor& vertex_normals);
void ComputeTriangleAreasCPU(const core::Tensor& vertices,
const core::Tensor& triangles,
core::Tensor& triangle_areas);
#ifdef BUILD_CUDA_MODULE
void NormalizeNormalsCUDA(core::Tensor& normals);
void ComputeTriangleNormalsCUDA(const core::Tensor& vertices,
const core::Tensor& triangles,
core::Tensor& normals);
void ComputeVertexNormalsCUDA(const core::Tensor& triangles,
const core::Tensor& triangle_normals,
core::Tensor& vertex_normals);
void ComputeTriangleAreasCUDA(const core::Tensor& vertices,
const core::Tensor& triangles,
core::Tensor& triangle_areas);
#endif
} // namespace trianglemesh
} // namespace kernel
} // namespace geometry
} // namespace t
} // namespace open3d