Add Aff_transformation_2 conversion, simplify Aff_tr_3's

This commit is contained in:
Mael Rouxel-Labbé 2021-12-02 20:11:18 +01:00
parent edb664d85a
commit 5aa34c9106
1 changed files with 17 additions and 16 deletions

View File

@ -396,24 +396,25 @@ public:
return std::make_pair(operator()(pp.first), operator()(pp.second));
}
typename K2::Aff_transformation_3
operator()(const typename K1::Aff_transformation_3 &a) const
typename K2::Aff_transformation_2
operator()(const typename K1::Aff_transformation_2& a) const
{
typedef typename K2::Aff_transformation_3 Aff_transformation_3;
typename K2::FT t[12];
for(int i=0; i< 3; ++i)
{
for(int j=0; j<4; ++j)
{
t[i*4+j] = a.m(i,j);
}
}
return Aff_transformation_3(
t[0],t[1],t[2],t[3],
t[4],t[5],t[6],t[7],
t[8],t[9],t[10],t[11],
a.m(3,3));
typedef typename K2::Aff_transformation_2 Aff_transformation_2;
return Aff_transformation_2(c(a.m(0,0)), c(a.m(0,1)), c(a.m(0,2)),
c(a.m(1,0)), c(a.m(1,1)), c(a.m(1,2)),
c(a.m(2,2)));
}
typename K2::Aff_transformation_3
operator()(const typename K1::Aff_transformation_3& a) const
{
typedef typename K2::Aff_transformation_3 Aff_transformation_3;
return Aff_transformation_3(c(a.m(0,0)), c(a.m(0,1)), c(a.m(0,2)), c(a.m(0,3)),
c(a.m(1,0)), c(a.m(1,1)), c(a.m(1,2)), c(a.m(1,3)),
c(a.m(2,0)), c(a.m(2,1)), c(a.m(2,2)), c(a.m(2,3)),
c(a.m(3,3)));
}
private:
Converter c;
K2 k;