mirror of https://github.com/CGAL/cgal
Split instantaneous and kinetic versions of predicate as the compiler was having trouble telling the templates apart.
This commit is contained in:
parent
b28d073a9f
commit
7bd75414f2
|
|
@ -30,76 +30,107 @@ struct Certificate_generator {
|
||||||
Certificate_generator(typename KK_t::Function_kernel fk): fk_(fk){}
|
Certificate_generator(typename KK_t::Function_kernel fk): fk_(fk){}
|
||||||
Certificate_generator(){}
|
Certificate_generator(){}
|
||||||
|
|
||||||
|
enum When {AT, AFTER};
|
||||||
|
|
||||||
|
template <class A, class B, class C, class D, class E, class Time>
|
||||||
|
CGAL::Sign sign_at(const A &a, const B &b, const C &c, const D &d, const E &e,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_at(gen_(a,b,c,d,e), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class A, class B, class C, class D, class E, class Time>
|
||||||
|
CGAL::Sign sign_after(const A &a, const B &b, const C &c, const D &d, const E &e,
|
||||||
|
const Time &begin) const {
|
||||||
|
//if (when==AFTER) {
|
||||||
|
return eval_sign_after(gen_(a, b, c, d, e), begin);
|
||||||
|
/*} elsee {
|
||||||
|
return sign_at(gen_(a,b,c,d,e), begin);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class A, class B, class C, class D>
|
||||||
|
CGAL::Sign sign_at(const A &a, const B &b, const C &c, const D &d,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_at(gen_(a, b, c, d), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class A, class B, class C, class D>
|
||||||
|
CGAL::Sign sign_after(const A &a, const B &b, const C &c, const D &d,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_after(gen_(a, b, c, d), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class A, class B, class C>
|
||||||
|
CGAL::Sign sign_at(const A &a, const B &b, const C &c,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_at(gen_(a,b,c), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class A, class B, class C>
|
||||||
|
CGAL::Sign sign_after(const A &a, const B &b, const C &c,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_after(gen_(a,b,c), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class A, class B>
|
||||||
|
CGAL::Sign sign_at(const A &a, const B &b,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_at(gen_(a, b), begin);
|
||||||
|
}
|
||||||
|
template <class A, class B>
|
||||||
|
CGAL::Sign sign_after(const A &a, const B &b,
|
||||||
|
const Time &begin) const {
|
||||||
|
return eval_sign_after(gen_(a, b), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class A>
|
||||||
|
CGAL::Sign sign_at(const A &a, const Time &begin) const {
|
||||||
|
return eval_sign_at(gen_(a), begin);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class A>
|
||||||
|
CGAL::Sign sign_after(const A &a, const Time &begin) const {
|
||||||
|
return eval_sign_after(gen_(a), begin);
|
||||||
|
}
|
||||||
|
|
||||||
template <class A, class B, class C, class D, class E>
|
template <class A, class B, class C, class D, class E>
|
||||||
result_type operator()(const A &a, const B &b, const C &c, const D &d, const E &e, const Time &begin, const Time &end) const {
|
result_type operator()(const A &a, const B &b, const C &c, const D &d, const E &e,
|
||||||
|
const Time &begin, const Time &end) const {
|
||||||
return result_type(gen_(a, b, c, d, e), fk_, begin, end);
|
return result_type(gen_(a, b, c, d, e), fk_, begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class A, class B, class C, class D>
|
template <class A, class B, class C, class D>
|
||||||
result_type operator()(const A &a, const B &b, const C &c, const D &d, const Time &begin, const Time &end) const {
|
result_type operator()(const A &a, const B &b, const C &c, const D &d,
|
||||||
|
const Time &begin, const Time &end) const {
|
||||||
return result_type(gen_(a, b, c, d), fk_, begin, end);
|
return result_type(gen_(a, b, c, d), fk_, begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class A, class B, class C>
|
template <class A, class B, class C>
|
||||||
result_type operator()(const A &a, const B &b, const C &c, const Time &begin, const Time &end) const {
|
result_type operator()(const A &a, const B &b, const C &c, const Time &begin,
|
||||||
|
const Time &end) const {
|
||||||
return result_type(gen_(a, b, c), fk_, begin, end);
|
return result_type(gen_(a, b, c), fk_, begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class A, class B>
|
template <class A, class B>
|
||||||
result_type operator()(const A &a, const B &b, const Time &begin, const Time &end) const {
|
result_type operator()(const A &a, const B &b, const Time &begin, const Time &end) const {
|
||||||
return result_type(gen_(a, b), fk_, begin, end);
|
return result_type(gen_(a, b), fk_, begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class A>
|
template <class A>
|
||||||
result_type operator()(const A &a, const Time &begin, const Time &end) const {
|
result_type operator()(const A &a, const Time &begin, const Time &end) const {
|
||||||
return result_type(gen_(a), fk_,begin,end);
|
return result_type(gen_(a), fk_,begin,end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class A, class B, class C, class D, class E>
|
|
||||||
CGAL::Sign operator()(const A &a, const B &b, const C &c, const D &d, const E &e, const Time &begin, bool after=false) const {
|
|
||||||
if (after) {
|
|
||||||
return sign_after(gen_(a, b, c, d, e), begin);
|
|
||||||
} else {
|
|
||||||
return sign_at(gen_(a,b,c,d,e), begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
template <class A, class B, class C, class D>
|
|
||||||
CGAL::Sign operator()(const A &a, const B &b, const C &c, const D &d, const Time &begin, bool after=false) const {
|
|
||||||
if (after) {
|
|
||||||
return sign_after(gen_(a, b, c, d), begin);
|
|
||||||
} else {
|
|
||||||
return sign_at(gen_(a,b,c,d), begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
template <class A, class B, class C>
|
|
||||||
CGAL::Sign operator()(const A &a, const B &b, const C &c, const Time &begin, bool after=false) const {
|
|
||||||
if (after) {
|
|
||||||
return sign_after(gen_(a, b, c), begin);
|
|
||||||
} else {
|
|
||||||
return sign_at(gen_(a,b,c), begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
template <class A, class B>
|
|
||||||
CGAL::Sign operator()(const A &a, const B &b, const Time &begin, bool after=false) const {
|
|
||||||
if (after) {
|
|
||||||
return sign_after(gen_(a, b), begin);
|
|
||||||
} else {
|
|
||||||
return sign_at(gen_(a, b), begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
template <class A>
|
|
||||||
CGAL::Sign operator()(const A &a, const Time &begin, bool after=false) const {
|
|
||||||
if (after) {
|
|
||||||
return sign_after(gen_(a), begin);
|
|
||||||
} else {
|
|
||||||
return sign_at(gen_(a), begin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CGAL::Sign sign_after(const typename KK_t::Function_kernel::Function &f,
|
CGAL::Sign eval_sign_after(const typename KK_t::Function_kernel::Function &f,
|
||||||
const Time &t) const {
|
const Time &t) const {
|
||||||
return fk_.sign_after_object()(f,t);
|
return fk_.sign_after_object()(f,t);
|
||||||
}
|
}
|
||||||
CGAL::Sign sign_at(const typename KK_t::Function_kernel::Function &f,
|
CGAL::Sign eval_sign_at(const typename KK_t::Function_kernel::Function &f,
|
||||||
const Time &t) const {
|
const Time &t) const {
|
||||||
return fk_.sign_at_object()(f,t);
|
return fk_.sign_at_object()(f,t);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue