Open3D (C++ API)  0.19.0
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TriangleMesh.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include "open3d/core/Tensor.h"
11 
12 namespace open3d {
13 namespace t {
14 namespace geometry {
15 namespace kernel {
16 namespace trianglemesh {
17 
18 void NormalizeNormalsCPU(core::Tensor& normals);
19 
20 void ComputeTriangleNormalsCPU(const core::Tensor& vertices,
21  const core::Tensor& triangles,
22  core::Tensor& normals);
23 
24 void ComputeVertexNormalsCPU(const core::Tensor& triangles,
25  const core::Tensor& triangle_normals,
26  core::Tensor& vertex_normals);
27 
28 void ComputeTriangleAreasCPU(const core::Tensor& vertices,
29  const core::Tensor& triangles,
30  core::Tensor& triangle_areas);
31 
32 std::array<core::Tensor, 3> SamplePointsUniformlyCPU(
33  const core::Tensor& triangles,
34  const core::Tensor& vertices,
35  const core::Tensor& triangle_areas,
36  const core::Tensor& vertex_normals,
37  const core::Tensor& vertex_colors,
38  const core::Tensor& triangle_normals,
39  const core::Tensor& texture_uvs,
40  const core::Tensor& albedo,
41  size_t number_of_points);
42 
43 #ifdef BUILD_CUDA_MODULE
44 void NormalizeNormalsCUDA(core::Tensor& normals);
45 
46 void ComputeTriangleNormalsCUDA(const core::Tensor& vertices,
47  const core::Tensor& triangles,
48  core::Tensor& normals);
49 
50 void ComputeVertexNormalsCUDA(const core::Tensor& triangles,
51  const core::Tensor& triangle_normals,
52  core::Tensor& vertex_normals);
53 
54 void ComputeTriangleAreasCUDA(const core::Tensor& vertices,
55  const core::Tensor& triangles,
56  core::Tensor& triangle_areas);
57 #endif
58 
59 } // namespace trianglemesh
60 } // namespace kernel
61 } // namespace geometry
62 } // namespace t
63 } // namespace open3d
double t
Definition: SurfaceReconstructionPoisson.cpp:172
Definition: Tensor.h:32
std::array< core::Tensor, 3 > SamplePointsUniformlyCPU(const core::Tensor &triangles, const core::Tensor &vertices, const core::Tensor &triangle_areas, const core::Tensor &vertex_normals, const core::Tensor &vertex_colors, const core::Tensor &triangle_normals, const core::Tensor &texture_uvs, const core::Tensor &albedo, size_t number_of_points)
Definition: TriangleMeshCPU.cpp:75
void NormalizeNormalsCPU(core::Tensor &normals)
Definition: TriangleMeshImpl.h:33
void ComputeTriangleAreasCPU(const core::Tensor &vertices, const core::Tensor &triangles, core::Tensor &triangle_areas)
Definition: TriangleMeshImpl.h:115
void ComputeTriangleNormalsCPU(const core::Tensor &vertices, const core::Tensor &triangles, core::Tensor &normals)
Definition: TriangleMeshImpl.h:70
void ComputeVertexNormalsCPU(const core::Tensor &triangles, const core::Tensor &triangle_normals, core::Tensor &vertex_normals)
Definition: TriangleMeshCPU.cpp:22
Definition: PinholeCameraIntrinsic.cpp:16