mirror of https://github.com/CGAL/cgal
Introduced ApproximateUnbounded_2 concept
This commit is contained in:
parent
9a5280076a
commit
e20cfc56b5
|
|
@ -0,0 +1,40 @@
|
|||
/*! \ingroup PkgArrangementOnSurface2ConceptsTraits
|
||||
* \cgalConcept
|
||||
*
|
||||
* The concept `AosApproximateUnboundedTraits_2` refines the concept
|
||||
* `AosApproximateTraits_2`. A model of this concept is able to approximate a
|
||||
* curve constrained to a given bounding box (in addition to the ability to
|
||||
* approximate a point and a curve without constraints).
|
||||
*
|
||||
* \cgalRefines{AosApproximateTraits_2}
|
||||
*
|
||||
* \cgalHasModelsBegin
|
||||
* \cgalHasModels{CGAL::Arr_linear_traits_2<Kernel>}
|
||||
* \cgalHasModelsEnd
|
||||
*
|
||||
* \sa `AosApproximateTraits_2`
|
||||
* \sa `draw()`
|
||||
*/
|
||||
class AosApproximateUnboundedTraits_2 {
|
||||
public:
|
||||
/// \name Types
|
||||
/// @{
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Functor Types
|
||||
/// @{
|
||||
|
||||
/// models the concept `AosTraits::ApproximateUnbounded_2`.
|
||||
typedef unspecified_type Approximate_2;
|
||||
|
||||
/// @}
|
||||
|
||||
/// \name Accessing Functor Objects
|
||||
/// @{
|
||||
|
||||
///
|
||||
Approximate_2 approximate_2_object() const;
|
||||
|
||||
/// @}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
namespace AosTraits {
|
||||
|
||||
/*! \ingroup PkgArrangementOnSurface2ConceptsFunctionObjects
|
||||
* \cgalConcept
|
||||
*
|
||||
* \cgalRefines{Approximate_2}
|
||||
*
|
||||
* \cgalHasModelsBegin
|
||||
* \cgalHasModels{AosApproximatePointTraits_2::Approximate_2}
|
||||
* \cgalHasModels{AosApproximateTraits_2::Approximate_2}
|
||||
* \cgalHasModels{AosApproximateUnboundedTraits_2::Approximate_2}
|
||||
* \cgalHasModelsEnd
|
||||
*/
|
||||
class ApproximateUnbounded_2 {
|
||||
public:
|
||||
/// \name Operations
|
||||
/// A model of this concept must provide:
|
||||
/// @{
|
||||
|
||||
/*! approximates a given \f$x\f$-monotone curve constrained to a bounding
|
||||
* box. It computes one or more sequences of approximate points that represent
|
||||
* the disconnected portions of a polyline that approximates `xcv` within the
|
||||
* bounding box `bbox`, and inserts them into output containers given through
|
||||
* the output iterator `oi`. The first point of the first sequence and the
|
||||
* last point of the last sequence are always approximations of the endpoints
|
||||
* of the given curve.
|
||||
*
|
||||
* \param xcv The exact \f$x\f$-monotone curve.
|
||||
* \param error The error bound of the polyline approximation. This is the
|
||||
* Hausdorff distance between the curve and the polyline that
|
||||
* approximates the curve.
|
||||
* \param oi An output iterator for the output containers.
|
||||
* \param bbox the bounding box.
|
||||
* \param l2r A Boolean flag that indicates whether the curve direction is
|
||||
* left to right.
|
||||
* \return The past-the-end iterator of the output container.
|
||||
*
|
||||
* \pre Dereferencing `oi` must yield an object the type of which is a
|
||||
* container, where the value type of this container is
|
||||
* `AosApproximateTraits_2::Approximate_point_2`.
|
||||
*/
|
||||
template <typename OutputIterator>
|
||||
OutputIterator operator()(const X_monotone_curve_2& xcv, double error, OutputIterator oi,
|
||||
const BBox& bbox, bool l2r = true) const;
|
||||
|
||||
/// @}
|
||||
}; /* end AosTraits::Approximate_2 */
|
||||
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ public:
|
|||
* \return The past-the-end iterator of the output container.
|
||||
*
|
||||
* \pre Dereferencing `oi` must yield an object of type
|
||||
* `Arr_conic_traits_2::Approximate_point_2`.
|
||||
* `AosApproximateTraits_2::Approximate_point_2`.
|
||||
*/
|
||||
template <typename OutputIterator>
|
||||
OutputIterator operator()(const X_monotone_curve_2& xcv, double error,
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ implemented as peripheral classes or as free (global) functions.
|
|||
|
||||
- `AosApproximateTraits_2`
|
||||
- `AosApproximatePointTraits_2`
|
||||
- `AosApproximateUnboundedTraits_2`
|
||||
- `AosBasicTopologyTraits`
|
||||
- `AosBasicTraits_2`
|
||||
- `AosBottomSideTraits_2`
|
||||
|
|
@ -168,6 +169,7 @@ implemented as peripheral classes or as free (global) functions.
|
|||
|
||||
- `AosTraits::Approximate_2`
|
||||
- `AosTraits::ApproximatePoint_2`
|
||||
- `AosTraits::ApproximateUnbounded_2`
|
||||
- `AosTraits::AreMergeable_2`
|
||||
- `AosTraits::CompareX_2`
|
||||
- `AosTraits::CompareXy_2`
|
||||
|
|
|
|||
Loading…
Reference in New Issue