// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2014 Alec Jacobson // // 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/. #include "dqs.h" #include template < typename DerivedV, typename DerivedW, typename Q, typename QAlloc, typename T, typename DerivedU> IGL_INLINE void igl::dqs( const Eigen::PlainObjectBase & V, const Eigen::PlainObjectBase & W, const std::vector & vQ, const std::vector & vT, Eigen::PlainObjectBase & U) { using namespace std; assert(V.rows() <= W.rows()); assert(W.cols() == (int)vQ.size()); assert(W.cols() == (int)vT.size()); // resize output U.resizeLike(V); // Convert quats + trans into dual parts vector vD(vQ.size()); for(int c = 0;c10000) for(int i = 0;i, Eigen::Matrix, Eigen::Quaternion, Eigen::aligned_allocator >, Eigen::Matrix, Eigen::Matrix >(Eigen::PlainObjectBase > const&, Eigen::PlainObjectBase > const&, std::vector, Eigen::aligned_allocator > > const&, std::vector, std::allocator > > const&, Eigen::PlainObjectBase >&); #endif