debugging SK rep()

This commit is contained in:
Sébastien Loriot 2007-10-05 16:08:42 +00:00
parent e96499f6c6
commit 72125e86ff
5 changed files with 35 additions and 13 deletions

View File

@ -57,6 +57,10 @@ public:
Circular_arc_point_on_reference_sphere_3(const HQ_NT& hq,const typename AK::Root_for_spheres_2_3& R)
: RCircular_arc_point_on_reference_sphere_3(hq,R)
{}
Circular_arc_point_on_reference_sphere_3(const HQ_NT& hq,const typename SphericalKernel::Circular_arc_point_3& R)
: RCircular_arc_point_on_reference_sphere_3(hq,R)
{}
Circular_arc_point_on_reference_sphere_3(const HQ_NT& _hq,const Root_of_2& ftheta,const typename AK::Root_for_spheres_2_3& rfs)
: RCircular_arc_point_on_reference_sphere_3(

View File

@ -120,7 +120,6 @@ namespace CGAL {
typedef std::pair<Sphere_3,typename SK::Plane_3> Rep;
typedef typename SK::template Handle<Rep>::type Base;
Base base;
public:
@ -216,7 +215,7 @@ namespace CGAL {
typedef typename SK::Direction_3 Direction_3;
typedef typename SK::FT FT;
private:
protected:
//~ typedef std::pair<Sphere_3, Plane_3> Rep;
//~ typedef typename SK::template Handle<Rep>::type Base;

View File

@ -43,7 +43,8 @@ namespace CGAL {
Circular_arc_point_on_reference_sphere_3():T_Circular_arc_point_3(FT(0),FT(0),FT(0)),Trep(-1,FT(0)){};
Circular_arc_point_on_reference_sphere_3(const HQ_NT& hq,const typename AK::Root_for_spheres_2_3& R):T_Circular_arc_point_3(R),Trep(hq,auto_ftype(hq)==TAN?(R.y()/R.x()):(R.x()/R.y())){};
Circular_arc_point_on_reference_sphere_3(const HQ_NT& hq,const T_Circular_arc_point_3& R):T_Circular_arc_point_3(R),Trep(hq,auto_ftype(hq)==TAN?(R.y()/R.x()):(R.x()/R.y())){};
//~ static inline Circular_arc_point_on_reference_sphere_3 VirtualPt_to_point_on_sphere(){
//~ return Circular_arc_point_on_reference_sphere_3(FT(0),FT(0),FT(0),FT(0),HQ_NT(-1));
//~ };

View File

@ -551,7 +551,10 @@ template < class SK > \
result_type
operator()(const HQ_NT& hq,const typename SK::Algebraic_kernel::Root_for_spheres_2_3& R)
{return Rep(hq,R);}
result_type
operator()(const HQ_NT& hq,const typename SK::Circular_arc_point_3& R)
{return Rep(hq,R);}
@ -1055,10 +1058,12 @@ template < class SK > \
{
typedef typename SK::Point_3 Point_3;
typedef typename SK::Sphere_3 Sphere_3;
typedef typename SK::Sphere_with_radius_3 Sphere_with_radius_3;
typedef typename SK::Plane_3 Plane_3;
typedef typename SK::Line_3 Line_3;
typedef typename SK::Line_arc_3 Line_arc_3;
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef typename SK::Circular_arc_point_on_reference_sphere_3 Circular_arc_point_on_reference_sphere_3;
typedef typename SK::Circular_arc_3 Circular_arc_3;
typedef typename SK::Circle_3 Circle_3;
@ -1082,6 +1087,10 @@ template < class SK > \
result_type
operator()(const Sphere_3 &a, const Circular_arc_point_3 &p) const
{ return has_on<SK>(a, p); }
result_type
operator()(const Sphere_with_radius_3 &a, const Circular_arc_point_on_reference_sphere_3 &p) const
{ return (*this)(static_cast<const Sphere_3&>(a),static_cast<const Circular_arc_point_3&>(p)); }
result_type
operator()(const Circular_arc_point_3 &p, const Sphere_3 &a) const
@ -1717,7 +1726,8 @@ template < class SK > \
typedef typename SK::Point_3 Point_3;
public:
typedef typename SK::Linear_kernel::Bounded_side result_type;
//~ typedef typename SK::Linear_kernel::Bounded_side result_type;
typedef typename SK::Linear_kernel::Bounded_side_3::result_type result_type;
typedef Arity_tag< 2 > Arity;
using SK::Linear_kernel::Bounded_side_3::operator();

View File

@ -86,9 +86,10 @@ namespace CGAL {
return Sphere_3(Point_3(eq.a(),eq.b(),eq.c()),eq.r_sq());
}
template < class SK >
inline
typename SK::Linear_kernel::Bounded_side
typename SK::Linear_kernel::Bounded_side_3::result_type
bounded_side(const typename SK::Sphere_3 &s,
const typename SK::Circular_arc_point_3 &p) {
typedef typename SK::Algebraic_kernel Algebraic_kernel;
@ -242,8 +243,10 @@ namespace CGAL {
typedef typename SK::Root_for_spheres_2_3 Root_for_spheres_2_3;
typedef typename SK::FT FT;
CGAL_kernel_precondition(!p.rep().is_degenerate());
CGAL_kernel_precondition(!s.rep().is_degenerate());
//~ CGAL_kernel_precondition(!p.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s.rep().is_degenerate());
CGAL_kernel_precondition(!p.is_degenerate());
CGAL_kernel_precondition(!s.is_degenerate());
const FT d2 = CGAL::square(p.a()*s.center().x() +
p.b()*s.center().y() +
@ -305,8 +308,10 @@ namespace CGAL {
{
typedef typename SK::Plane_3 Plane_3;
typedef typename SK::Sphere_3 Sphere_3;
CGAL_kernel_precondition(!s1.rep().is_degenerate());
CGAL_kernel_precondition(!s2.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s1.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s2.rep().is_degenerate());
CGAL_kernel_precondition(!s1.is_degenerate());
CGAL_kernel_precondition(!s2.is_degenerate());
if(non_oriented_equal<SK>(s1,s2)) {
*res++ = make_object(s1);
return res;
@ -356,9 +361,12 @@ namespace CGAL {
typedef typename SK::Circle_3 Circle_3;
typedef typename SK::Algebraic_kernel Algebraic_kernel;
typedef std::vector< Object > solutions_container;
CGAL_kernel_precondition(!s1.rep().is_degenerate());
CGAL_kernel_precondition(!s2.rep().is_degenerate());
CGAL_kernel_precondition(!s3.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s1.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s2.rep().is_degenerate());
//~ CGAL_kernel_precondition(!s3.rep().is_degenerate());
CGAL_kernel_precondition(!s1.is_degenerate());
CGAL_kernel_precondition(!s2.is_degenerate());
CGAL_kernel_precondition(!s3.is_degenerate());
if(non_oriented_equal<SK>(s1,s2) && non_oriented_equal<SK>(s2,s3)) {
*res++ = make_object(s1);
return res;