8#ifndef IGL_SLICE_MASK_H 
    9#define IGL_SLICE_MASK_H 
   12#include <Eigen/Sparse> 
   25  template <
typename XType, 
typename YType>
 
   27    const Eigen::SparseMatrix<XType> & X,
 
   28    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   29    const Eigen::Array<bool,Eigen::Dynamic,1> & C,
 
   30    Eigen::SparseMatrix<YType> & Y);
 
   36  template <
typename XType, 
typename YType>
 
   38    const Eigen::SparseMatrix<XType> & X,
 
   39    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   41    Eigen::SparseMatrix<YType> & Y);
 
   47  template <
typename DerivedX,
typename DerivedY>
 
   49    const Eigen::DenseBase<DerivedX> & X,
 
   50    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   51    const Eigen::Array<bool,Eigen::Dynamic,1> & C,
 
   52    Eigen::PlainObjectBase<DerivedY> & Y);
 
   53  template <
typename DerivedX,
typename DerivedY>
 
   55    const Eigen::DenseBase<DerivedX> & X,
 
   56    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   58    Eigen::PlainObjectBase<DerivedY> & Y);
 
   64  template <
typename DerivedX>
 
   66    const Eigen::DenseBase<DerivedX> & X,
 
   67    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   68    const Eigen::Array<bool,Eigen::Dynamic,1> & C);
 
   70  template <
typename DerivedX>
 
   72    const Eigen::DenseBase<DerivedX> & X,
 
   73    const Eigen::Array<bool,Eigen::Dynamic,1> & R,
 
   78#ifndef IGL_STATIC_LIBRARY 
   79#  include "slice_mask.cpp" 
#define IGL_INLINE
Definition igl_inline.h:15
void slice_mask(const Eigen::SparseMatrix< XType > &X, const Eigen::Array< bool, Eigen::Dynamic, 1 > &R, const Eigen::Array< bool, Eigen::Dynamic, 1 > &C, Eigen::SparseMatrix< YType > &Y)
Act like the matlab X(row_mask,col_mask) operator, where row_mask, col_mask are non-negative integer ...