CGAL 6.3 - 1D Arrangements
Loading...
Searching...
No Matches
ArrangementOnCurve_1 Concept Reference

Definition

Has models
CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1<GeometryTraits_1, TopologyTraits>

A model of the concept ArrangementOnCurve_1 can be used to represent a 1D subdivision of a continuous geometric curve (a 1D "master curve" or line space) into alternating vertices and edges, collectively referred to as cells.

Types

typedef unspecified_type Size
 the size type (convertible to size_t).
typedef unspecified_type Point_1
 The 1D arrangement point representation.
typedef unspecified_type Vertex_descriptor
 Descriptor targeting a mutable vertex element.
typedef unspecified_type Edge_descriptor
 Descriptor targeting a mutable edge element.
typedef unspecified_type Vertex_const_descriptor
 Descriptor targeting an immutable vertex element.
typedef unspecified_type Edge_const_descriptor
 Descriptor targeting an immutable edge element.
typedef std::variant< Vertex_descriptor, Edge_descriptorLocation_result
 Represents a point localization result within the 1D curve structure.
typedef std::variant< Vertex_const_descriptor, Edge_const_descriptorConst_location_result

Creation

 ArrangementOnCurve_1 ()
 Default Constructor.

Accessors

bool empty () const
 obtains true if the arrangement does not contains any vertices.
Size number_of_vertices () const
 obtains the total count of vertices resting along the line track.
Size number_of_edges () const
 obtains the total number of bounded and unbounded edge sections.
auto vertices () const
 obtains an iterator range tracking all constant vertex descriptors.
auto edges () const
 obtains an iterator range tracking all constant edge descriptors.
auto vertex_point_map () const
 obtains an lvalue property map matching vertex descriptors to their coordinate positions.
auto vertex_data_map () const
 obtains an lvalue property map matching vertex descriptors to their extended user attributes.
auto edge_data_map () const
 obtains an lvalue property map matching edge descriptors to their extended user attributes.
Edge_descriptor unbounded_left_edge ()
 obtains the descriptor of the leftmost unbounded edge spanning \((-\infty, v_{first})\).
Edge_const_descriptor unbounded_left_edge () const
 obtains the constant descriptor of the leftmost unbounded edge.
Edge_descriptor unbounded_right_edge ()
 obtains the descriptor of the rightmost unbounded edge spanning \((v_{last}, +\infty)\).
Edge_const_descriptor unbounded_right_edge () const
 obtains the constant descriptor of the rightmost unbounded edge.
Vertex_const_descriptor left_vertex (Edge_const_descriptor e) const
 obtains the descriptor of the left vertex of an edge.
Vertex_const_descriptor right_vertex (Edge_const_descriptor e) const
 obtains the descriptor of the vertex of an edge.
Edge_const_descriptor left_edge (Vertex_const_descriptor v) const
 obtains the descriptor of left edge of a vertex.
Edge_const_descriptor right_edge (Vertex_const_descriptor v) const
 obtains the descriptor of right edge of a vertex.
bool has_left_vertex (Edge_const_descriptor e) const
 determines whether an edge has a left vertex.
bool has_right_vertex (Edge_const_descriptor e) const
 determines whether an edge has a right vertex.

Modification Modifiers

void reset_shared_geometry_traits (Shared_geometry_traits new_shared_traits_traits)
 safety resets function allowing empty arrangements to bind to a separate existing traits memory frame.
Vertex_descriptor create_vertex (const Point_1 &p)
 creates a new vertex, enforcing the rightmost ordering invariant when BinarySearch is active.
Edge_descriptor create_edge ()
 creates an new edge.
void destroy_vertex (Vertex_descriptor v)
 destroys a given vertex.
void destroy_edge (Edge_descriptor e)
 destroys a given edge.
Vertex_descriptor insert_empty (const Point_1 &p)
Vertex_descriptor insert_before (Vertex_descriptor v, const Point_1 &p)
 inserts a new point p strictly to the left of an existing vertex v.
Vertex_descriptor insert_after (Vertex_descriptor v, const Point_1 &p)
 inserts a new point p strictly to the right of an existing vertex v.
Vertex_descriptor split_edge (Edge_descriptor e, const Point_1 &p)
 splits the edge e by inserting a new point p inside it.
void remove (Vertex_descriptor v)
 removes an active vertex node from the 1D track, cleanly merging its left and right segments into an individual unified edge.

Member Typedef Documentation

◆ Location_result

Represents a point localization result within the 1D curve structure.

A coordinate query point must match a Vertex_descriptor if it rests on an arrangement node, or an Edge_descriptor if it falls securely between two nodes or out inside an infinity frontier.

Constructor & Destructor Documentation

◆ ArrangementOnCurve_1()

ArrangementOnCurve_1::ArrangementOnCurve_1 ( )

Default Constructor.

Allocates a new default-constructed instance on the heap.

Member Function Documentation

◆ has_left_vertex()

bool ArrangementOnCurve_1::has_left_vertex ( Edge_const_descriptor e) const

determines whether an edge has a left vertex.

Parameters
ethe edge.

◆ has_right_vertex()

bool ArrangementOnCurve_1::has_right_vertex ( Edge_const_descriptor e) const

determines whether an edge has a right vertex.

Parameters
ethe edge.

◆ left_edge()

Edge_const_descriptor ArrangementOnCurve_1::left_edge ( Vertex_const_descriptor v) const

obtains the descriptor of left edge of a vertex.

Parameters
vthe vertex.
Precondition
has_left_vertex(e) evaluates to true.

◆ left_vertex()

Vertex_const_descriptor ArrangementOnCurve_1::left_vertex ( Edge_const_descriptor e) const

obtains the descriptor of the left vertex of an edge.

Parameters
ethe edge.

◆ reset_shared_geometry_traits()

void ArrangementOnCurve_1::reset_shared_geometry_traits ( Shared_geometry_traits new_shared_traits_traits)

safety resets function allowing empty arrangements to bind to a separate existing traits memory frame.

Precondition
is_empty() == true

◆ right_edge()

Edge_const_descriptor ArrangementOnCurve_1::right_edge ( Vertex_const_descriptor v) const

obtains the descriptor of right edge of a vertex.

Parameters
vthe vertex.
Precondition
has_right_vertex(e) evaluates to true.

◆ right_vertex()

Vertex_const_descriptor ArrangementOnCurve_1::right_vertex ( Edge_const_descriptor e) const

obtains the descriptor of the vertex of an edge.

Parameters
ethe edge.

◆ split_edge()

Vertex_descriptor ArrangementOnCurve_1::split_edge ( Edge_descriptor e,
const Point_1 & p )

splits the edge e by inserting a new point p inside it.

e becomes the left sub-edge; a new edge becomes the right sub-edge.

#include <Concepts/ArrangementOnCurve_1.h>

Definition

Has models
CGAL::Arrangement_on_curve_1::Arrangement_on_curve_1<GeometryTraits_1, TopologyTraits>

A model of the concept ArrangementOnCurve_1 can be used to represent a 1D subdivision of a continuous geometric curve (a 1D "master curve" or line space) into alternating vertices and edges, collectively referred to as cells.

Types

typedef unspecified_type Size
 the size type (convertible to size_t).
typedef unspecified_type Point_1
 The 1D arrangement point representation.
typedef unspecified_type Vertex_descriptor
 Descriptor targeting a mutable vertex element.
typedef unspecified_type Edge_descriptor
 Descriptor targeting a mutable edge element.
typedef unspecified_type Vertex_const_descriptor
 Descriptor targeting an immutable vertex element.
typedef unspecified_type Edge_const_descriptor
 Descriptor targeting an immutable edge element.
typedef std::variant< Vertex_descriptor, Edge_descriptorLocation_result
 Represents a point localization result within the 1D curve structure.
typedef std::variant< Vertex_const_descriptor, Edge_const_descriptorConst_location_result

Creation

 ArrangementOnCurve_1 ()
 Default Constructor.

Accessors

bool empty () const
 obtains true if the arrangement does not contains any vertices.
Size number_of_vertices () const
 obtains the total count of vertices resting along the line track.
Size number_of_edges () const
 obtains the total number of bounded and unbounded edge sections.
auto vertices () const
 obtains an iterator range tracking all constant vertex descriptors.
auto edges () const
 obtains an iterator range tracking all constant edge descriptors.
auto vertex_point_map () const
 obtains an lvalue property map matching vertex descriptors to their coordinate positions.
auto vertex_data_map () const
 obtains an lvalue property map matching vertex descriptors to their extended user attributes.
auto edge_data_map () const
 obtains an lvalue property map matching edge descriptors to their extended user attributes.
Edge_descriptor unbounded_left_edge ()
 obtains the descriptor of the leftmost unbounded edge spanning \((-\infty, v_{first})\).
Edge_const_descriptor unbounded_left_edge () const
 obtains the constant descriptor of the leftmost unbounded edge.
Edge_descriptor unbounded_right_edge ()
 obtains the descriptor of the rightmost unbounded edge spanning \((v_{last}, +\infty)\).
Edge_const_descriptor unbounded_right_edge () const
 obtains the constant descriptor of the rightmost unbounded edge.
Vertex_const_descriptor left_vertex (Edge_const_descriptor e) const
 obtains the descriptor of the left vertex of an edge.
Vertex_const_descriptor right_vertex (Edge_const_descriptor e) const
 obtains the descriptor of the vertex of an edge.
Edge_const_descriptor left_edge (Vertex_const_descriptor v) const
 obtains the descriptor of left edge of a vertex.
Edge_const_descriptor right_edge (Vertex_const_descriptor v) const
 obtains the descriptor of right edge of a vertex.
bool has_left_vertex (Edge_const_descriptor e) const
 determines whether an edge has a left vertex.
bool has_right_vertex (Edge_const_descriptor e) const
 determines whether an edge has a right vertex.

Modification Modifiers

void reset_shared_geometry_traits (Shared_geometry_traits new_shared_traits_traits)
 safety resets function allowing empty arrangements to bind to a separate existing traits memory frame.
Vertex_descriptor create_vertex (const Point_1 &p)
 creates a new vertex, enforcing the rightmost ordering invariant when BinarySearch is active.
Edge_descriptor create_edge ()
 creates an new edge.
void destroy_vertex (Vertex_descriptor v)
 destroys a given vertex.
void destroy_edge (Edge_descriptor e)
 destroys a given edge.
Vertex_descriptor insert_empty (const Point_1 &p)
Vertex_descriptor insert_before (Vertex_descriptor v, const Point_1 &p)
 inserts a new point p strictly to the left of an existing vertex v.
Vertex_descriptor insert_after (Vertex_descriptor v, const Point_1 &p)
 inserts a new point p strictly to the right of an existing vertex v.
Vertex_descriptor split_edge (Edge_descriptor e, const Point_1 &p)
 splits the edge e by inserting a new point p inside it.
void remove (Vertex_descriptor v)
 removes an active vertex node from the 1D track, cleanly merging its left and right segments into an individual unified edge.

Member Typedef Documentation

◆ Location_result

Represents a point localization result within the 1D curve structure.

A coordinate query point must match a Vertex_descriptor if it rests on an arrangement node, or an Edge_descriptor if it falls securely between two nodes or out inside an infinity frontier.

Constructor & Destructor Documentation

◆ ArrangementOnCurve_1()

ArrangementOnCurve_1::ArrangementOnCurve_1 ( )

Default Constructor.

Allocates a new default-constructed instance on the heap.

Member Function Documentation

◆ has_left_vertex()

bool ArrangementOnCurve_1::has_left_vertex ( Edge_const_descriptor e) const

determines whether an edge has a left vertex.

Parameters
ethe edge.

◆ has_right_vertex()

bool ArrangementOnCurve_1::has_right_vertex ( Edge_const_descriptor e) const

determines whether an edge has a right vertex.

Parameters
ethe edge.

◆ left_edge()

Edge_const_descriptor ArrangementOnCurve_1::left_edge ( Vertex_const_descriptor v) const

obtains the descriptor of left edge of a vertex.

Parameters
vthe vertex.
Precondition
has_left_vertex(e) evaluates to true.

◆ left_vertex()

Vertex_const_descriptor ArrangementOnCurve_1::left_vertex ( Edge_const_descriptor e) const

obtains the descriptor of the left vertex of an edge.

Parameters
ethe edge.

◆ reset_shared_geometry_traits()

void ArrangementOnCurve_1::reset_shared_geometry_traits ( Shared_geometry_traits new_shared_traits_traits)

safety resets function allowing empty arrangements to bind to a separate existing traits memory frame.

Precondition
is_empty() == true

◆ right_edge()

Edge_const_descriptor ArrangementOnCurve_1::right_edge ( Vertex_const_descriptor v) const

obtains the descriptor of right edge of a vertex.

Parameters
vthe vertex.
Precondition
has_right_vertex(e) evaluates to true.

◆ right_vertex()

Vertex_const_descriptor ArrangementOnCurve_1::right_vertex ( Edge_const_descriptor e) const

obtains the descriptor of the vertex of an edge.

Parameters
ethe edge.

◆ split_edge()

Vertex_descriptor ArrangementOnCurve_1::split_edge ( Edge_descriptor e,
const Point_1 & p )

splits the edge e by inserting a new point p inside it.

e becomes the left sub-edge; a new edge becomes the right sub-edge.