123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // This file is part of libigl, a simple c++ geometry processing library.
- //
- // Copyright (C) 2013 Daniele Panozzo <daniele.panozzo@gmail.com>
- //
- // This Source Code Form is subject to the terms of the Mozilla Public License
- // v. 2.0. If a copy of the MPL was not distributed with this file, You can
- // obtain one at http://mozilla.org/MPL/2.0/.
- #ifndef IGL_PROJECTMESH_H
- #define IGL_PROJECTMESH_H
- #include <igl/igl_inline.h>
- #include <Eigen/Dense>
- #include <Eigen/Sparse>
- #include <vector>
- namespace igl
- {
- //// Project the triangle mesh V_source, F_source onto the triangle mesh
- //// V_target,F_target.
- //// A ray is casted for every vertex in the normal direction and its opposite.
- ////
- //// Input:
- //// V_source: #Vx3 Vertices of the source mesh
- //// F_source: #Fx3 Faces of the source mesh
- //// V_target: #V2x3 Vertices of the target mesh
- //// F_target: #F2x3 Faces of the target mesh
- ////
- //// Output:
- //// #Vx3 matrix of baricentric coordinate. Each row corresponds to
- //// a vertex of the projected mesh and it has the following format:
- //// id b1 b2. id is the id of a face of the source mesh. b1 and b2 are
- //// the barycentric coordinates wrt the first two edges of the triangle
- //// To convert to standard global coordinates, see barycentric_to_global.h
- //template <typename ScalarMatrix, typename IndexMatrix>
- //IGL_INLINE ScalarMatrix project_mesh
- //(
- // const ScalarMatrix & V_source,
- // const IndexMatrix & F_source,
- // const ScalarMatrix & V_target,
- // const IndexMatrix & F_target
- //);
- // Project the point cloud V_source onto the triangle mesh
- // V_target,F_target.
- // A ray is casted for every vertex in the direction specified by
- // N_source and its opposite.
- //
- // Input:
- // V_source: #Vx3 Vertices of the source mesh
- // N_source: #Vx3 Normals of the point cloud
- // V_target: #V2x3 Vertices of the target mesh
- // F_target: #F2x3 Faces of the target mesh
- //
- // Output:
- // #Vx3 matrix of baricentric coordinate. Each row corresponds to
- // a vertex of the projected mesh and it has the following format:
- // id b1 b2. id is the id of a face of the source mesh. b1 and b2 are
- // the barycentric coordinates wrt the first two edges of the triangle
- // To convert to standard global coordinates, see barycentric_to_global.h
- template <typename ScalarMatrix, typename IndexMatrix>
- IGL_INLINE ScalarMatrix project_points_on_mesh
- (
- const ScalarMatrix & V_source,
- const ScalarMatrix & N_source,
- const ScalarMatrix & V_target,
- const IndexMatrix & F_target
- );
- }
- #ifndef IGL_STATIC_LIBRARY
- # include "project_mesh.cpp"
- #endif
- #endif
|