Fix Homogeneous and Visibility

This commit is contained in:
Andreas Fabri 2018-03-21 07:59:53 +01:00
parent 54a45c6a5e
commit ac93cec931
3 changed files with 33 additions and 8 deletions

View File

@ -917,21 +917,24 @@ cartesian(int i, int j) const
case 0: return FT(_cos) / FT(_den); case 0: return FT(_cos) / FT(_den);
case 1: return - FT(_sin) / FT(_den); case 1: return - FT(_sin) / FT(_den);
case 2: return RT(0); case 2: return RT(0);
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
case 0: return FT(_sin) / FT(_den); case 0: return FT(_sin) / FT(_den);
case 1: return FT(_cos) / FT(_den); case 1: return FT(_cos) / FT(_den);
case 2: return FT(0); case 2: return FT(0);
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
case 0: return FT(0); case 0: return FT(0);
case 1: return FT(0); case 1: return FT(0);
case 2: return FT(1); case 2: return FT(1);
default: CGAL_ASSUME(false);
} }
} }
return FT(0); CGAL_ASSUME(false);
} }
template < class R > template < class R >
@ -947,21 +950,24 @@ homogeneous(int i, int j) const
case 0: return _sf_num; case 0: return _sf_num;
case 1: return RT(0); case 1: return RT(0);
case 2: return RT(0); case 2: return RT(0);
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
case 0: return RT(0); case 0: return RT(0);
case 1: return _sf_num; case 1: return _sf_num;
case 2: return RT(0); case 2: return RT(0);
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
case 0: return RT(0); case 0: return RT(0);
case 1: return RT(0); case 1: return RT(0);
case 2: return _sf_den; case 2: return _sf_den;
default: CGAL_ASSUME(false);
} }
} }
return RT(0); CGAL_ASSUME(false);
} }
template <class R> template <class R>
@ -977,21 +983,24 @@ cartesian(int i, int j) const
case 0: return FT(_sf_num) / FT(_sf_den); case 0: return FT(_sf_num) / FT(_sf_den);
case 1: return FT(0); case 1: return FT(0);
case 2: return FT(0); case 2: return FT(0);
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
case 0: return FT(0); case 0: return FT(0);
case 1: return FT(_sf_num) / FT(_sf_den); case 1: return FT(_sf_num) / FT(_sf_den);
case 2: return FT(0); case 2: return FT(0);
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
case 0: return FT(0); case 0: return FT(0);
case 1: return FT(0); case 1: return FT(0);
case 2: return FT(1); case 2: return FT(1);
default: CGAL_ASSUME(false);
} }
} }
return FT(0); CGAL_ASSUME(false);
} }
template < class R > template < class R >
@ -1008,21 +1017,24 @@ homogeneous(int i, int j) const
case 0: return l.b()*l.b() - l.a()*l.a(); case 0: return l.b()*l.b() - l.a()*l.a();
case 1: return l.a()*l.b()*mRT2; case 1: return l.a()*l.b()*mRT2;
case 2: return l.a()*l.c()*mRT2; case 2: return l.a()*l.c()*mRT2;
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
case 0: return l.a()*l.b()*mRT2; case 0: return l.a()*l.b()*mRT2;
case 1: return l.a()*l.a() - l.b()*l.b(); case 1: return l.a()*l.a() - l.b()*l.b();
case 2: return l.b()*l.c()*mRT2; case 2: return l.b()*l.c()*mRT2;
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
case 0: return RT(0); case 0: return RT(0);
case 1: return RT(0); case 1: return RT(0);
case 2: return l.a()*l.a() + l.b()*l.b(); case 2: return l.a()*l.a() + l.b()*l.b();
default: CGAL_ASSUME(false);
} }
} }
return RT(0); CGAL_ASSUME(false);
} }
template <class R> template <class R>
@ -1039,21 +1051,24 @@ cartesian(int i, int j) const
case 0: return FT( l.b()-l.a() ) / FT( l.a()+l.b()); case 0: return FT( l.b()-l.a() ) / FT( l.a()+l.b());
case 1: return FT( homogeneous(0,1)) / de; case 1: return FT( homogeneous(0,1)) / de;
case 2: return FT( homogeneous(0,2)) / de; case 2: return FT( homogeneous(0,2)) / de;
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
case 0: return FT( homogeneous(1,0)) / de; case 0: return FT( homogeneous(1,0)) / de;
case 1: return FT( l.a()-l.b() ) / FT( l.a()+l.b()); case 1: return FT( l.a()-l.b() ) / FT( l.a()+l.b());
case 2: return FT( homogeneous(1,2)) / de; case 2: return FT( homogeneous(1,2)) / de;
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
case 0: return FT(0); case 0: return FT(0);
case 1: return FT(0); case 1: return FT(0);
case 2: return FT(1); case 2: return FT(1);
default: CGAL_ASSUME(false);
} }
} }
return FT(0); GAL_ASSUME(false);
} }
} //namespace CGAL } //namespace CGAL

View File

@ -551,6 +551,7 @@ homogeneous(int i, int j) const
case 1: return t01; case 1: return t01;
case 2: return t02; case 2: return t02;
case 3: return t03; case 3: return t03;
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
@ -558,6 +559,7 @@ homogeneous(int i, int j) const
case 1: return t11; case 1: return t11;
case 2: return t12; case 2: return t12;
case 3: return t13; case 3: return t13;
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
@ -565,6 +567,7 @@ homogeneous(int i, int j) const
case 1: return t21; case 1: return t21;
case 2: return t22; case 2: return t22;
case 3: return t23; case 3: return t23;
default: CGAL_ASSUME(false);
} }
case 3: switch (j) case 3: switch (j)
{ {
@ -572,9 +575,10 @@ homogeneous(int i, int j) const
case 1: return RT0; case 1: return RT0;
case 2: return RT0; case 2: return RT0;
case 3: return t33; case 3: return t33;
default: CGAL_ASSUME(false);
} }
} }
return RT0; CGAL_ASSUME(false);
} }
template < class R > template < class R >
@ -695,6 +699,7 @@ Translation_repH3<R>::homogeneous(int i, int j) const
case 1: return RT0; case 1: return RT0;
case 2: return RT0; case 2: return RT0;
case 3: return tv.hx(); case 3: return tv.hx();
default: CGAL_ASSUME(false);
} }
case 1: switch (j) case 1: switch (j)
{ {
@ -702,6 +707,7 @@ Translation_repH3<R>::homogeneous(int i, int j) const
case 1: return tv.hw(); case 1: return tv.hw();
case 2: return RT0; case 2: return RT0;
case 3: return tv.hy(); case 3: return tv.hy();
default: CGAL_ASSUME(false);
} }
case 2: switch (j) case 2: switch (j)
{ {
@ -709,6 +715,7 @@ Translation_repH3<R>::homogeneous(int i, int j) const
case 1: return RT0; case 1: return RT0;
case 2: return tv.hw(); case 2: return tv.hw();
case 3: return tv.hz(); case 3: return tv.hz();
default: CGAL_ASSUME(false);
} }
case 3: switch (j) case 3: switch (j)
{ {
@ -716,9 +723,10 @@ Translation_repH3<R>::homogeneous(int i, int j) const
case 1: return RT0; case 1: return RT0;
case 2: return RT0; case 2: return RT0;
case 3: return tv.hw(); case 3: return tv.hw();
default: CGAL_ASSUME(false);
} }
} }
return RT0; CGAL_ASSUME(false);
} }
template < class R > template < class R >

View File

@ -129,8 +129,8 @@ private:
return 1; return 1;
case LEFT_TURN: case LEFT_TURN:
return 2; return 2;
default: CGAL_ASSUME(false);
} }
return -1; return -1;
} }
@ -223,6 +223,7 @@ private:
== Visibility_2::orientation_2(geom_traits, s2, t2, s1); == Visibility_2::orientation_2(geom_traits, s2, t2, s1);
else else
return true; return true;
default: CGAL_ASSUME(false);
} }
case LEFT_TURN: case LEFT_TURN:
switch (Visibility_2::orientation_2(geom_traits, s1, t1, s2)) { switch (Visibility_2::orientation_2(geom_traits, s1, t1, s2)) {
@ -240,6 +241,7 @@ private:
== Visibility_2::orientation_2(geom_traits, s2, t2, s1); == Visibility_2::orientation_2(geom_traits, s2, t2, s1);
else else
return true; return true;
default: CGAL_ASSUME(false);
} }
} }