CGAL 6.3-dev - 2D Envelopes
Loading...
Searching...
No Matches
CGAL::Envelope_2::Envelope_diagram_1< Traits_2, Allocator > Class Template Reference

#include <CGAL/Envelope_diagram_1.h>

Inherits from

CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, Arrangement_on_curve_1::Open_topology_traits< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, std::list< Traits_2::X_monotone_curve_2 >, std::list< Traits_2::X_monotone_curve_2 >, false, CGAL_ALLOCATOR(int) > >.

Definition

template<typename Traits_2, typename Allocator = CGAL_ALLOCATOR(int)>
class CGAL::Envelope_2::Envelope_diagram_1< Traits_2, Allocator >

This class is the default envelope-diagram class used by envelope functions to represent the minimization or the maximization diagram of a set of curves in the plane.

It represents the diagram as a doubly-linked list of interleaved vertices and edges. Thus, all operations provided by the envelope diagram take constant time, and the space needed to store the diagram class is linear in the complexity of the envelope.

The envelope-diagram class is parameterized by a traits class, which is a model of the AosXMonotoneTraits_2 concept, in case we handle only envelopes of \(x\)-monotone curves, or of the refined AosTraits_2 concept in case we handle arbitrary planar curves.

Is model of
EnvelopeDiagram_1
See also
CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1
CGAL::Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1
CGAL::Arrangement_on_curve_1::Open_topology_traits
Examples
Envelope_2/convex_hull_2.cpp, Envelope_2/envelope_circles.cpp, and Envelope_2/envelope_segments.cpp.

Types

typedef std::list< typename Traits_2::X_monotone_curve_2 > Curve_container
 The container of the curves associated with a diagram feature.
typedef Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 > Geom_traits_1
 The 1D geometry traits.
typedef Arrangement_on_curve_1::Open_topology_traits< Geom_traits_1, Curve_container, Curve_container, false, Allocator > Topol_traits
 The topology traits of the base 1D arrangement.
typedef Arrangement_on_curve_1::Arrangement_on_curve_1< Geom_traits_1, Topol_traits > Arrangement_on_curve_1
 The type of the base 1D arrangement.

Creation

 Envelope_diagram_1 (std::shared_ptr< const Geom_traits_1 > traits)
 constructs an empty diagram that shares the 1D geometry traits traits.

Additional Inherited Members

Public Types inherited from CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, Arrangement_on_curve_1::Open_topology_traits< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, std::list< Traits_2::X_monotone_curve_2 >, std::list< Traits_2::X_monotone_curve_2 >, false, CGAL_ALLOCATOR(int) > >
typedef GeometryTraits_1 Geometry_traits_1
typedef TopologyTraits Topology_traits
typedef std::shared_ptr< const Geometry_traits_1 > Shared_geometry_traits
typedef Topology_traits::Allocator Allocator
typedef Allocator allocator_type
Public Member Functions inherited from CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, Arrangement_on_curve_1::Open_topology_traits< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, std::list< Traits_2::X_monotone_curve_2 >, std::list< Traits_2::X_monotone_curve_2 >, false, CGAL_ALLOCATOR(int) > >
 Arrangement_on_curve_1 ()
const Geometry_traits_1 & geometry_traits_1 () const
Shared_geometry_traits shared_geometry_traits_1 () const
const Topology_traits & topology_traits () const
Allocator get_allocator () const
void reset_shared_geometry_traits (Shared_geometry_traits sgt)
Vertex_descriptor insert_left_boundary_vertex (const Point_1 &p)
Vertex_descriptor insert_right_boundary_vertex (Edge_descriptor e, const Point_1 &p)
Vertex_descriptor insert_identification_vertex (const Point_1 &p)
Static Public Attributes inherited from CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, Arrangement_on_curve_1::Open_topology_traits< Arrangement_on_curve_1::Open_geom_traits_2_adaptor_1< Traits_2 >, std::list< Traits_2::X_monotone_curve_2 >, std::list< Traits_2::X_monotone_curve_2 >, false, CGAL_ALLOCATOR(int) > >
static constexpr bool binary_search_enabled
static constexpr bool left_is_closed
static constexpr bool right_is_closed

Constructor & Destructor Documentation

◆ Envelope_diagram_1()

template<typename Traits_2, typename Allocator = CGAL_ALLOCATOR(int)>
CGAL::Envelope_2::Envelope_diagram_1< Traits_2, Allocator >::Envelope_diagram_1 ( std::shared_ptr< const Geom_traits_1 > traits)

constructs an empty diagram that shares the 1D geometry traits traits.

Unlike the constructor from a shared pointer to the 2D geometry traits, it does not allocate a 1D geometry traits.