add vcglib
This commit is contained in:
1 parent
6f6c0c8eb7
commit
af8100f851
1537 files changed
+634197
No files matched your search
@@ -0,0 +1,302 @@
|
||||
/****************************************************************************
|
||||
* VCGLib o o *
|
||||
* Visual and Computer Graphics Library o o *
|
||||
* _ O _ *
|
||||
* Copyright(C) 2004-2016 \/)\/ *
|
||||
* Visual Computing Lab /\/| *
|
||||
* ISTI - Italian National Research Council | *
|
||||
* \ *
|
||||
* All rights reserved. *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
|
||||
* for more details. *
|
||||
* *
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning You are including deprecated math stuff
|
||||
#endif
|
||||
|
||||
typedef Scalar ScalarType;
|
||||
|
||||
/*! \deprecated use cols() */
|
||||
EIGEN_DEPRECATED inline unsigned int ColumnsNumber() const { return cols(); };
|
||||
|
||||
|
||||
/*! \deprecated use rows() */
|
||||
EIGEN_DEPRECATED inline unsigned int RowsNumber() const { return rows(); };
|
||||
|
||||
/*!
|
||||
* \deprecated use *this(i,j) (or *this.coeff(i,j))
|
||||
* Return the element stored in the <I>i</I>-th rows at the <I>j</I>-th column
|
||||
* \param i the row index
|
||||
* \param j the column index
|
||||
* \return the element
|
||||
*/
|
||||
EIGEN_DEPRECATED inline Scalar ElementAt(unsigned int i, unsigned int j) const { return (*this)(i,j); };
|
||||
EIGEN_DEPRECATED inline Scalar& ElementAt(unsigned int i, unsigned int j) { return (*this)(i,j); };
|
||||
EIGEN_DEPRECATED inline Scalar V(int i) const { return (*this)[i]; };
|
||||
EIGEN_DEPRECATED inline Scalar& V(int i) { return (*this)[i]; };
|
||||
|
||||
/*!
|
||||
* \deprecated use *this.determinant() (or *this.lu().determinant() for large matrices)
|
||||
* Calculate and return the matrix determinant (Laplace)
|
||||
* \return the matrix determinant
|
||||
*/
|
||||
EIGEN_DEPRECATED Scalar Determinant() const { return determinant(); };
|
||||
|
||||
/*!
|
||||
* Return the cofactor <I>A<SUB>i,j</SUB></I> of the <I>a<SUB>i,j</SUB></I> element
|
||||
* \return ...
|
||||
*/
|
||||
EIGEN_DEPRECATED Scalar Cofactor(unsigned int i, unsigned int j) const
|
||||
{
|
||||
assert(rows() == cols());
|
||||
assert(rows()>2);
|
||||
return (((i+j)%2==0) ? 1. : -1.) * minor(i,j).determinant();
|
||||
};
|
||||
|
||||
/*! \deprecated use *this.col(j) */
|
||||
EIGEN_DEPRECATED ColXpr GetColumn(const unsigned int j) { return col(j); };
|
||||
|
||||
/*! \deprecated use *this.row(i) */
|
||||
EIGEN_DEPRECATED RowXpr GetRow(const unsigned int i) { return row(i); };
|
||||
|
||||
/*! \deprecated use m1.col(i).swap(m1.col(j)); */
|
||||
EIGEN_DEPRECATED void SwapColumns(const unsigned int i, const unsigned int j)
|
||||
{
|
||||
if (i==j) return;
|
||||
col(i).swap(col(j));
|
||||
};
|
||||
|
||||
/*! \deprecated use m1.col(i).swap(m1.col(j)) */
|
||||
EIGEN_DEPRECATED void SwapRows(const unsigned int i, const unsigned int j)
|
||||
{
|
||||
if (i==j) return;
|
||||
row(i).swap(row(j));
|
||||
};
|
||||
|
||||
/*!
|
||||
* \deprecated use *this.cwise() += k
|
||||
* (Modifier) Add to each element of this matrix the scalar constant <I>k</I>.
|
||||
* \param k the scalar constant
|
||||
* \return the modified matrix
|
||||
*/
|
||||
EIGEN_DEPRECATED Derived& operator+=(const Scalar k)
|
||||
{
|
||||
cwise() += k;
|
||||
return *this;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \deprecated use *this.cwise() -= k
|
||||
* (Modifier) Subtract from each element of this matrix the scalar constant <I>k</I>.
|
||||
* \param k the scalar constant
|
||||
* \return the modified matrix
|
||||
*/
|
||||
EIGEN_DEPRECATED Derived& operator-=(const Scalar k)
|
||||
{
|
||||
cwise() -= k;
|
||||
return *this;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \deprecated use *this.dot
|
||||
* Matrix multiplication: calculates the cross product.
|
||||
* \param reference to the matrix to multiply by
|
||||
* \return the matrix product
|
||||
*/
|
||||
// template <int N,int M>
|
||||
// EIGEN_DEPRECATED void DotProduct(Point<N,Scalar> &m,Point<M,Scalar> &result)
|
||||
// {
|
||||
// unsigned int i, j;
|
||||
// for (i=0; i<M; i++)
|
||||
// { result[i]=0;
|
||||
// for (j=0; j<N; j++)
|
||||
// result[i]+=(*this)[i][j]*m[j];
|
||||
// }
|
||||
// };
|
||||
|
||||
|
||||
/*! \deprecated use *this = a * b.transpose() (or *this = a * b.adjoint() for complexes) */
|
||||
template <typename OtherDerived1, typename OtherDerived2>
|
||||
EIGEN_DEPRECATED void OuterProduct(const MatrixBase<OtherDerived1>& a, const MatrixBase<OtherDerived2>& b)
|
||||
{ *this = a * b.adjoint(); }
|
||||
|
||||
typedef CwiseUnaryOp<ei_scalar_add_op<Scalar>, Derived> ScalarAddReturnType;
|
||||
|
||||
/*! \deprecated use *this.cwise() + k */
|
||||
EIGEN_DEPRECATED const ScalarAddReturnType operator+(const Scalar k) { return cwise() + k; }
|
||||
|
||||
/*! \deprecated use *this.cwise() - k */
|
||||
EIGEN_DEPRECATED const ScalarAddReturnType operator-(const Scalar k) { return cwise() - k; }
|
||||
|
||||
/*! \deprecated use *this.setZero() or *this = MatrixType::Zero(rows,cols), etc. */
|
||||
EIGEN_DEPRECATED void SetZero() { setZero(); };
|
||||
|
||||
/*! \deprecated use *this.setIdentity() or *this = MatrixType::Identity(rows,cols), etc. */
|
||||
EIGEN_DEPRECATED void SetIdentity() { setIdentity(); };
|
||||
|
||||
/*! \deprecated use *this.col(j) = expression */
|
||||
EIGEN_DEPRECATED void SetColumn(unsigned int j, Scalar* v)
|
||||
{ col(j) = Map<Matrix<Scalar,RowsAtCompileTime,1> >(v,cols(),1); };
|
||||
|
||||
/** \deprecated use *this.col(i) = other */
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED void SetColumn(unsigned int j, const MatrixBase<OtherDerived>& other)
|
||||
{ col(j) = other; };
|
||||
|
||||
/*! \deprecated use *this.row(i) = expression */
|
||||
EIGEN_DEPRECATED void SetRow(unsigned int i, Scalar* v)
|
||||
{ row(i) = Map<Matrix<Scalar,1,ColsAtCompileTime> >(v,1,rows()); };
|
||||
|
||||
/** \deprecated use *this.row(i) = other */
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED void SetRow(unsigned int j, const MatrixBase<OtherDerived>& other)
|
||||
{ row(j) = other; };
|
||||
|
||||
/*! \deprecated use *this.diagonal() = expression */
|
||||
EIGEN_DEPRECATED void SetDiagonal(Scalar *v)
|
||||
{
|
||||
assert(rows() == cols());
|
||||
diagonal() = Map<Matrix<Scalar,RowsAtCompileTime,1> >(v,cols(),1);
|
||||
}
|
||||
|
||||
/** \deprecated use trace() */
|
||||
EIGEN_DEPRECATED Scalar Trace() const { return trace(); }
|
||||
|
||||
/*! \deprecated use ostream << *this or even ostream << *this.withFormat(...) */
|
||||
EIGEN_DEPRECATED void Dump()
|
||||
{
|
||||
unsigned int i, j;
|
||||
for (i=0; i<rows(); ++i)
|
||||
{
|
||||
printf("[\t");
|
||||
for (j=0; j<cols(); j++)
|
||||
printf("%f\t", coeff(i,j));
|
||||
printf("]\n");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
/** \deprecated use norm() */
|
||||
EIGEN_DEPRECATED inline Scalar Norm() const { return norm(); };
|
||||
/** \deprecated use squaredNorm() */
|
||||
EIGEN_DEPRECATED inline Scalar SquaredNorm() const { return squaredNorm(); };
|
||||
/** \deprecated use normalize() or normalized() */
|
||||
EIGEN_DEPRECATED inline Derived& Normalize() { normalize(); return derived(); };
|
||||
/** \deprecated use normalized() */
|
||||
EIGEN_DEPRECATED inline const PlainMatrixType Normalize() const { return normalized(); };
|
||||
|
||||
/** \deprecated use transposeInPlace() or transpose() */
|
||||
EIGEN_DEPRECATED inline Derived& Transpose() { transposeInPlace(); return derived(); };
|
||||
/** \deprecated use transpose() */
|
||||
EIGEN_DEPRECATED inline const Eigen::Transpose<Derived> Transpose() const { return transpose(); };
|
||||
|
||||
/** \deprecated use .cross(p) */
|
||||
EIGEN_DEPRECATED inline PlainMatrixType operator ^ (const Derived& p ) const { return this->cross(p); }
|
||||
|
||||
/// Homogeneous normalization (division by W)
|
||||
inline Derived& HomoNormalize()
|
||||
{
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
enum {
|
||||
SubRows = (int(Flags)&RowMajorBit) ? 1 : (RowsAtCompileTime==Dynamic ? Dynamic : RowsAtCompileTime-1),
|
||||
SubCols = (int(Flags)&RowMajorBit) ? (ColsAtCompileTime==Dynamic ? Dynamic : ColsAtCompileTime-1) : 1,
|
||||
};
|
||||
Scalar& last = coeffRef(size()-2);
|
||||
if (last!=Scalar(0))
|
||||
{
|
||||
Block<Derived,SubRows,SubCols>(derived(),0,0,
|
||||
(int(Flags)&RowMajorBit) ? size()-1 : 1,
|
||||
(int(Flags)&RowMajorBit) ? 1 : (size()-1)) / last;
|
||||
last = Scalar(1.0);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline const PlainMatrixType HomoNormalize() const
|
||||
{
|
||||
PlainMatrixType res = derived();
|
||||
return res.HomoNormalize();
|
||||
}
|
||||
|
||||
/// norm infinity: largest absolute value of compoenet
|
||||
EIGEN_DEPRECATED inline Scalar NormInfinity() const { return derived().cwise().abs().maxCoeff(); }
|
||||
/// norm 1: sum of absolute values of components
|
||||
EIGEN_DEPRECATED inline Scalar NormOne() const { return derived().cwise().abs().sum(); }
|
||||
|
||||
|
||||
/// the sum of the components
|
||||
EIGEN_DEPRECATED inline Scalar Sum() const { return sum(); }
|
||||
/// returns the biggest component
|
||||
EIGEN_DEPRECATED inline Scalar Max() const { return maxCoeff(); }
|
||||
/// returns the smallest component
|
||||
EIGEN_DEPRECATED inline Scalar Min() const { return minCoeff(); }
|
||||
/// returns the index of the biggest component
|
||||
EIGEN_DEPRECATED inline int MaxI() const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived); int i; maxCoeff(&i,0); return i; }
|
||||
/// returns the index of the smallest component
|
||||
EIGEN_DEPRECATED inline int MinI() const { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived); int i; minCoeff(&i,0); return i; }
|
||||
|
||||
|
||||
/// Padding function: give a default 0 value to all the elements that are not in the [0..2] range.
|
||||
/// Useful for managing in a consistent way object that could have point2 / point3 / point4
|
||||
inline Scalar Ext( const int i ) const
|
||||
{
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived);
|
||||
|
||||
if(i>=0 && i<SizeAtCompileTime)
|
||||
return coeff(i);
|
||||
else
|
||||
return Scalar(0);
|
||||
}
|
||||
|
||||
|
||||
/// Per component scaling
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline Derived& Scale(const MatrixBase<OtherDerived>& other)
|
||||
{ this->cwise() *= other; return derived; }
|
||||
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline
|
||||
CwiseBinaryOp<ei_scalar_product_op<Scalar>, Derived, OtherDerived>
|
||||
Scale(const MatrixBase<OtherDerived>& other) const
|
||||
{ return this->cwise() * other; }
|
||||
|
||||
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline bool operator < (const MatrixBase<OtherDerived>& other) const {
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived);
|
||||
return ei_lexi_comparison<Derived,OtherDerived,SizeAtCompileTime>::less(derived(),other.derived());
|
||||
}
|
||||
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline bool operator > (const MatrixBase<OtherDerived>& other) const {
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived);
|
||||
return ei_lexi_comparison<Derived,OtherDerived,SizeAtCompileTime>::geater(derived(),other.derived());
|
||||
}
|
||||
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline bool operator <= (const MatrixBase<OtherDerived>& other) const {
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived);
|
||||
return ei_lexi_comparison<Derived,OtherDerived,SizeAtCompileTime>::lessEqual(derived(),other.derived());
|
||||
}
|
||||
|
||||
template<typename OtherDerived>
|
||||
EIGEN_DEPRECATED inline bool operator >= (const MatrixBase<OtherDerived>& other) const {
|
||||
EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
|
||||
EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived);
|
||||
return ei_lexi_comparison<Derived,OtherDerived,SizeAtCompileTime>::greaterEqual(derived(),other.derived());
|
||||
}
|
||||
Reference in new issue
Block a user