Skip to content
Snippets Groups Projects
Commit dede0596 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'master-geoxf-rollback' into 'master'

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

See merge request !100
parents 614cc422 9668399f
No related branches found
No related tags found
1 merge request!100Rolled back two commits which affected Pow::operator()
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment