Skip to content
Snippets Groups Projects

Rolled back two commits which affected Pow::operator()

Merged Vakhtang Tsulaia requested to merge (removed):master-geoxf-rollback into master
1 file
+ 8
10
Compare changes
  • Side-by-side
  • Inline
@@ -231,25 +231,23 @@ __attribute__ ((flatten))
//
// Get the translation part and the rotation part:
//
Eigen::Matrix3d linear = m_xf.linear ();
Eigen::EigenSolver<GeoTrf::RotationMatrix3D> solver(linear);
Eigen::MatrixXcd D = solver.eigenvalues().asDiagonal();
Eigen::MatrixXcd V = solver.eigenvectors();
GeoTrf::RotationMatrix3D rotate = m_xf.rotation ();
GeoTrf::Vector3D translate = m_xf.translation ();
Eigen::AngleAxis<double> aa(rotate);
//
// Evaluate the function
//
double nTimes = (*m_function) (x);
//
// Modify:
//
translate *= nTimes;
Eigen::Matrix3cd DPowN=Eigen::Matrix3cd::Zero();
for (unsigned int i=0;i<3;i++) DPowN(i,i)=pow(D(i,i),nTimes);
double& delta = aa.angle();
delta *= nTimes;
//
// Now compose these and return a result:
//
GeoTrf::Transform3D tRPowN = GeoTrf::Transform3D::Identity();
tRPowN.linear()=(V*DPowN*V.inverse()).real();
return GeoTrf::Translation3D (translate) * tRPowN;
return GeoTrf::Translation3D (translate) * GeoTrf::Transform3D(aa);
}
GeoTrf::Transform3D Pow::operator () (const GeoGenfun::Argument & argument) const
Loading