Add static filter for Coplanar_3

This commit is contained in:
Andreas Fabri 2019-11-07 15:57:23 +01:00
parent b9e320659e
commit cc75efdbb5
3 changed files with 64 additions and 1 deletions

View File

@ -0,0 +1,54 @@
// Copyright (c) 2011 GeometryFactory (France)
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org)
//
// $URL$
// $Id$
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
//
//
// Author(s) : Andreas Fabri, Laurent Rineau
#ifndef CGAL_INTERNAL_STATIC_FILTERS_COPLANAR_3_H
#define CGAL_INTERNAL_STATIC_FILTERS_COPLANAR_3_H
namespace CGAL {
namespace internal {
namespace Static_filters_predicates {
template < typename K_base, typename SFK >
class Coplanar_3
: public K_base::Coplanar_3
{
typedef typename K_base::Point_3 Point_3;
typedef typename K_base::Coplanar_3 Base;
typedef typename SFK::Orientation_3 Orientation_3;
public:
typedef typename Base::result_type result_type;
result_type
operator()(const Point_3& p,const Point_3& q, const Point_3& r, const Point_3& s) const
{
return Orientation_3()(p,q,r,s) == COPLANAR;
}
}; // end class Coplanar_3
} // end namespace Static_filters_predicates
} // end namespace internal
} // end namespace CGAL
#endif // CGAL_INTERNAL_STATIC_FILTERS_COPLANAR_3_H

View File

@ -42,6 +42,8 @@
#endif // CGAL_DISABLE_STATIC_FILTERS_ADDED_2011
# include <CGAL/internal/Static_filters/Coplanar_3.h>
#ifndef CGAL_NO_EQUAL_3_STATIC_FILTERS
# include <CGAL/internal/Static_filters/Equal_3.h>
# include <CGAL/internal/Static_filters/Equal_2.h>
@ -96,6 +98,7 @@ class Static_filters : public K_base
{
typedef Static_filters<K_base> Self;
typedef Static_filters_predicates::Coplanar_3<K_base,Self> Coplanar_3;
public:
#ifndef CGAL_NO_EQUAL_3_STATIC_FILTERS
typedef Static_filters_predicates::Equal_2<K_base> Equal_2;
@ -137,6 +140,12 @@ public:
collinear_3_object() const
{ return Collinear_3(); }
Coplanar_3
coplanar_3_object() const
{
return Coplanar_3();
}
#ifndef CGAL_NO_EQUAL_3_STATIC_FILTERS
Equal_2
equal_2_object() const

View File

@ -488,7 +488,7 @@ CGAL_Kernel_pred_RT(Coplanar_orientation_3,
coplanar_orientation_3_object)
CGAL_Kernel_pred_RT(Coplanar_side_of_bounded_circle_3,
coplanar_side_of_bounded_circle_3_object)
CGAL_Kernel_pred(Coplanar_3,
CGAL_Kernel_pred_RT(Coplanar_3,
coplanar_3_object)
CGAL_Kernel_pred(Counterclockwise_in_between_2,
counterclockwise_in_between_2_object)