mirror of https://github.com/CGAL/cgal
123 lines
3.4 KiB
C++
123 lines
3.4 KiB
C++
// Copyright (c) 2020 GeometryFactory SARL (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) : Dmitry Anisimov
|
|
//
|
|
|
|
#ifndef CGAL_TRIANGULAR_REGION_WEIGHTS_H
|
|
#define CGAL_TRIANGULAR_REGION_WEIGHTS_H
|
|
|
|
// Internal includes.
|
|
#include <CGAL/Weights/internal/utils.h>
|
|
|
|
namespace CGAL {
|
|
namespace Weights {
|
|
|
|
#if defined(DOXYGEN_RUNNING)
|
|
|
|
/*!
|
|
\ingroup PkgWeightsRefTriangularRegionWeights
|
|
|
|
\brief computes the area of the triangular cell in 2D using the points `p`, `q`
|
|
and `r`, given a traits class `traits` with geometric objects, predicates, and constructions.
|
|
*/
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const typename GeomTraits::Point_2& p,
|
|
const typename GeomTraits::Point_2& q,
|
|
const typename GeomTraits::Point_2& r,
|
|
const GeomTraits& traits) { }
|
|
|
|
/*!
|
|
\ingroup PkgWeightsRefTriangularRegionWeights
|
|
|
|
\brief computes the area of the triangular cell in 3D using the points `p`, `q`
|
|
and `r`, given a traits class `traits` with geometric objects, predicates, and constructions.
|
|
*/
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const typename GeomTraits::Point_3& p,
|
|
const typename GeomTraits::Point_3& q,
|
|
const typename GeomTraits::Point_3& r,
|
|
const GeomTraits& traits) { }
|
|
|
|
/*!
|
|
\ingroup PkgWeightsRefTriangularRegionWeights
|
|
|
|
\brief computes the area of the triangular cell in 2D using the points `p`, `q`
|
|
and `r` which are parameterized by a `Kernel` K.
|
|
*/
|
|
template<typename K>
|
|
typename K::FT triangular_area(
|
|
const CGAL::Point_2<K>& p,
|
|
const CGAL::Point_2<K>& q,
|
|
const CGAL::Point_2<K>& r) { }
|
|
|
|
/*!
|
|
\ingroup PkgWeightsRefTriangularRegionWeights
|
|
|
|
\brief computes the area of the triangular cell in 3D using the points `p`, `q`
|
|
and `r` which are parameterized by a `Kernel` K.
|
|
*/
|
|
template<typename K>
|
|
typename K::FT triangular_area(
|
|
const CGAL::Point_3<K>& p,
|
|
const CGAL::Point_3<K>& q,
|
|
const CGAL::Point_3<K>& r) { }
|
|
|
|
#endif // DOXYGEN_RUNNING
|
|
|
|
/// \cond SKIP_IN_MANUAL
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const typename GeomTraits::Point_2& p,
|
|
const typename GeomTraits::Point_2& q,
|
|
const typename GeomTraits::Point_2& r,
|
|
const GeomTraits& traits) {
|
|
|
|
return internal::positive_area_2(traits, p, q, r);
|
|
}
|
|
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const CGAL::Point_2<GeomTraits>& p,
|
|
const CGAL::Point_2<GeomTraits>& q,
|
|
const CGAL::Point_2<GeomTraits>& r) {
|
|
|
|
const GeomTraits traits;
|
|
return triangular_area(p, q, r, traits);
|
|
}
|
|
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const typename GeomTraits::Point_3& p,
|
|
const typename GeomTraits::Point_3& q,
|
|
const typename GeomTraits::Point_3& r,
|
|
const GeomTraits& traits) {
|
|
|
|
return internal::positive_area_3(traits, p, q, r);
|
|
}
|
|
|
|
template<typename GeomTraits>
|
|
typename GeomTraits::FT triangular_area(
|
|
const CGAL::Point_3<GeomTraits>& p,
|
|
const CGAL::Point_3<GeomTraits>& q,
|
|
const CGAL::Point_3<GeomTraits>& r) {
|
|
|
|
const GeomTraits traits;
|
|
return triangular_area(p, q, r, traits);
|
|
}
|
|
/// \endcond
|
|
|
|
} // namespace Weights
|
|
} // namespace CGAL
|
|
|
|
#endif // CGAL_TRIANGULAR_REGION_WEIGHTS_H
|