text: // Copyright (c) 2000  
  // Utrecht University (The Netherlands),
  // ETH Zurich (Switzerland),
  // INRIA Sophia-Antipolis (France),
  // Max-Planck-Institute Saarbruecken (Germany),
  // and Tel-Aviv University (Israel).  All rights reserved. 
  //
  // This file is part of CGAL (www.cgal.org); you can redistribute it and/or
  // modify it under the terms of the GNU Lesser General Public License as
  // published by the Free Software Foundation; either version 3 of the License,
  // or (at your option) any later version.
  //
  // Licensees holding a valid commercial license may use this file in
  // accordance with the commercial license agreement provided with the software.
  //
  // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  //
  // $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/releases/CGAL-4.1-branch/Cartesian_kernel/include/CGAL/Cartesian/ft_constructions_2.h $
  // $Id: ft_constructions_2.h 67093 2012-01-13 11:22:39Z lrineau $
  // 
  //
  // Author(s)     : Herve Bronnimann
  
  #ifndef CGAL_CARTESIAN_FT_CONSTRUCTIONS_2_H
  #define CGAL_CARTESIAN_FT_CONSTRUCTIONS_2_H
  
  namespace CGAL {
  
  template < class K >
  inline
  typename K::FT
  squared_distance(const PointC2<K> &p,
                   const PointC2<K> &q)
  {
    return squared_distanceC2(p.x(), p.y(), q.x(), q.y());
  }
  
  template < class K >
  inline
  typename K::FT
  scaled_distance_to_line(const LineC2<K> &l,
                          const PointC2<K> &p)
  {
    return scaled_distance_to_lineC2(l.a(), l.b(), l.c(), p.x(), p.y());
  }
  
  template < class K >
  inline
  typename K::FT
  scaled_distance_to_line(const PointC2<K> &p,
                          const PointC2<K> &q,
                          const PointC2<K> &r)
  {
    return scaled_distance_to_lineC2(p.x(), p.y(), q.x(), q.y(), r.x(), r.y());
  }
  
  template < class K >
  inline
  typename K::FT
  line_y_at_x(const LineC2<K> &l, const typename K::FT &x)
  {
    return line_y_at_xC2(l.a(), l.b(), l.c(), x);
  }
  
  template < class K >
  inline
  typename K::FT
  line_x_at_y(const LineC2<K> &l, const typename K::FT &y)
  {
    return line_y_at_xC2(l.b(), l.a(), l.c(), y);
  }
  
  } //namespace CGAL
  
  #endif // CGAL_CARTESIAN_FT_CONSTRUCTIONS_2_H
  