40 const float *target_points_ptr,
41 const float *target_normals_ptr,
42 const int64_t *correspondences_first,
43 const int64_t *correspondences_second,
46 const core::Dtype &dtype,
47 const core::Device &device);
49 #ifdef BUILD_CUDA_MODULE 50 void ComputePosePointToPlaneCUDA(
const float *source_points_ptr,
51 const float *target_points_ptr,
52 const float *target_normals_ptr,
53 const int64_t *correspondences_first,
54 const int64_t *correspondences_second,
57 const core::Dtype &dtype,
58 const core::Device &device);
62 const float *target_points_ptr,
63 const int64_t *correspondences_first,
64 const int64_t *correspondences_second,
68 const core::Dtype dtype,
69 const core::Device device);
73 const float *source_points_ptr,
74 const float *target_points_ptr,
75 const float *target_normals_ptr,
76 const int64_t *correspondence_first,
77 const int64_t *correspondence_second,
86 const int64_t source_idx = 3 * correspondence_first[workload_idx];
87 const int64_t target_idx = 3 * correspondence_second[workload_idx];
89 const float &sx = source_points_ptr[source_idx + 0];
90 const float &sy = source_points_ptr[source_idx + 1];
91 const float &sz = source_points_ptr[source_idx + 2];
92 const float &tx = target_points_ptr[target_idx + 0];
93 const float &ty = target_points_ptr[target_idx + 1];
94 const float &tz = target_points_ptr[target_idx + 2];
95 const float &nx = target_normals_ptr[target_idx + 0];
96 const float &ny = target_normals_ptr[target_idx + 1];
97 const float &nz = target_normals_ptr[target_idx + 2];
99 r = (sx - tx) * nx + (sy - ty) * ny + (sz - tz) * nz;
100 J_ij[0] = nz * sy - ny * sz;
101 J_ij[1] = nx * sz - nz * sx;
102 J_ij[2] = ny * sx - nx * sy;
OPEN3D_HOST_DEVICE bool GetJacobianPointToPlane(int64_t workload_idx, const float *source_points_ptr, const float *target_points_ptr, const float *target_normals_ptr, const int64_t *correspondence_first, const int64_t *correspondence_second, float *J_ij, float &r)
Definition: ComputeTransformImpl.h:71
#define OPEN3D_HOST_DEVICE
Definition: CUDAUtils.h:56
Definition: PinholeCameraIntrinsic.cpp:35
void ComputeRtPointToPointCPU(const float *source_points_ptr, const float *target_points_ptr, const int64_t *correspondences_first, const int64_t *correspondences_second, const int n, core::Tensor &R, core::Tensor &t, const core::Dtype dtype, const core::Device device)
Definition: ComputeTransformCPU.cpp:118
void ComputePosePointToPlaneCPU(const float *source_points_ptr, const float *target_points_ptr, const float *target_normals_ptr, const int64_t *correspondences_first, const int64_t *correspondences_second, const int n, core::Tensor &pose, const core::Dtype &dtype, const core::Device &device)
Definition: ComputeTransformCPU.cpp:44