// Copyright (c) 1999-2004 // 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$ // $Id$ // SPDX-License-Identifier: LGPL-3.0+ // // // Author(s) : Stefan Schirra, Sylvain Pion #ifndef CGAL_HOMOGENEOUS_BASE_H #define CGAL_HOMOGENEOUS_BASE_H #include #include #include #include #include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace CGAL { template struct Homogeneous_base { typedef K_ Kernel; typedef RT_ RT; typedef FT_ FT; typedef Homogeneous_tag Rep_tag; typedef Homogeneous_tag Kernel_tag; enum { Has_filtered_predicates = false }; typedef Boolean_tag Has_filtered_predicates_tag; typedef CGAL::Object Object_2; typedef CGAL::Object Object_3; typedef typename Same_uncertainty_nt::type Boolean; typedef typename Same_uncertainty_nt::type Sign; typedef typename Same_uncertainty_nt::type Comparison_result; typedef typename Same_uncertainty_nt::type Orientation; typedef typename Same_uncertainty_nt::type Oriented_side; typedef typename Same_uncertainty_nt::type Bounded_side; typedef typename Same_uncertainty_nt::type Angle; template struct Ambient_dimension { typedef typename T::Ambient_dimension type; }; template struct Feature_dimension { typedef typename T::Feature_dimension type; }; typedef PointH2 Point_2; typedef VectorH2 Vector_2; typedef DirectionH2 Direction_2; typedef SegmentC2 Segment_2; typedef LineH2 Line_2; typedef RayC2 Ray_2; typedef CircleC2 Circle_2; typedef TriangleC2 Triangle_2; typedef Iso_rectangleH2 Iso_rectangle_2; typedef Aff_transformationH2 Aff_transformation_2; typedef Weighted_pointH2 Weighted_point_2; typedef PointH3 Point_3; typedef VectorH3 Vector_3; typedef DirectionH3 Direction_3; typedef SegmentC3 Segment_3; typedef PlaneH3 Plane_3; typedef LineC3 Line_3; typedef RayH3 Ray_3; typedef TriangleC3 Triangle_3; typedef TetrahedronC3 Tetrahedron_3; typedef Iso_cuboidH3 Iso_cuboid_3; typedef SphereH3 Sphere_3; typedef CircleC3 Circle_3; typedef Aff_transformationH3 Aff_transformation_3; typedef Weighted_pointH3 Weighted_point_3; typedef Cartesian_const_iterator_d::const_iterator> Cartesian_const_iterator_2; typedef Cartesian_const_iterator_d::const_iterator> Cartesian_const_iterator_3; typedef FT_ Cartesian_coordinate_type; typedef const RT_& Homogeneous_coordinate_type; // Undocumented stuff. typedef Data_accessorH2 Data_accessor_2; typedef ConicHPA2 Conic_2; // Functors types and access functions. #define CGAL_Kernel_pred(Y,Z) typedef HomogeneousKernelFunctors::Y Y; \ Y Z() const { return Y(); } #define CGAL_Kernel_cons(Y,Z) CGAL_Kernel_pred(Y,Z) #include }; } //namespace CGAL #endif // CGAL_HOMOGENEOUS_BASE_H