libigl v2.5.0
Loading...
Searching...
No Matches
iterative_closest_point.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2019 Alec Jacobson <alecjacobson@gmail.com>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_ITERATIVE_CLOSEST_POINT_H
9#define IGL_ITERATIVE_CLOSEST_POINT_H
10#include "igl_inline.h"
11#include <Eigen/Core>
12#include "AABB.h"
13
14namespace igl
15{
35 template <
36 typename DerivedVX,
37 typename DerivedFX,
38 typename DerivedVY,
39 typename DerivedFY,
40 typename DerivedR,
41 typename Derivedt
42 >
44 const Eigen::MatrixBase<DerivedVX> & VX,
45 const Eigen::MatrixBase<DerivedFX> & FX,
46 const Eigen::MatrixBase<DerivedVY> & VY,
47 const Eigen::MatrixBase<DerivedFY> & FY,
48 const int num_samples,
49 const int max_iters,
50 Eigen::PlainObjectBase<DerivedR> & R,
51 Eigen::PlainObjectBase<Derivedt> & t);
55 template <
56 typename DerivedVX,
57 typename DerivedFX,
58 typename DerivedVY,
59 typename DerivedFY,
60 typename DerivedNY,
61 typename DerivedR,
62 typename Derivedt
63 >
65 const Eigen::MatrixBase<DerivedVX> & VX,
66 const Eigen::MatrixBase<DerivedFX> & FX,
67 const Eigen::MatrixBase<DerivedVY> & VY,
68 const Eigen::MatrixBase<DerivedFY> & FY,
69 const igl::AABB<DerivedVY,3> & Ytree,
70 const Eigen::MatrixBase<DerivedNY> & NY,
71 const int num_samples,
72 const int max_iters,
73 Eigen::PlainObjectBase<DerivedR> & R,
74 Eigen::PlainObjectBase<Derivedt> & t);
75}
76
77#ifndef IGL_STATIC_LIBRARY
78# include "iterative_closest_point.cpp"
79#endif
80
81#endif
Implementation of semi-general purpose axis-aligned bounding box hierarchy.
Definition AABB.h:30
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void iterative_closest_point(const Eigen::MatrixBase< DerivedVX > &VX, const Eigen::MatrixBase< DerivedFX > &FX, const Eigen::MatrixBase< DerivedVY > &VY, const Eigen::MatrixBase< DerivedFY > &FY, const int num_samples, const int max_iters, Eigen::PlainObjectBase< DerivedR > &R, Eigen::PlainObjectBase< Derivedt > &t)
Solve for the rigid transformation that places mesh X onto mesh Y using the iterative closest point m...