|
BWAPI
|
#include <Conic_x_monotone_arc_2.h>
Classes | |
| struct | Less_conic_pair |
Public Types | |
| typedef Conic_arc_ | Conic_arc_2 |
| typedef _Conic_x_monotone_arc_2 < Conic_arc_2 > | Self |
| typedef Conic_arc_2::Alg_kernel | Alg_kernel |
| typedef Conic_arc_2::Algebraic | Algebraic |
| typedef Conic_arc_2::Point_2 | Point_2 |
| typedef Conic_arc_2::Conic_point_2 | Conic_point_2 |
| typedef Conic_point_2::Conic_id | Conic_id |
| typedef std::pair< Conic_id, Conic_id > | Conic_pair |
| typedef std::pair < Conic_point_2, unsigned int > | Intersection_point_2 |
| typedef std::list < Intersection_point_2 > | Intersection_list |
| typedef std::map< Conic_pair, Intersection_list, Less_conic_pair > | Intersection_map |
| typedef Intersection_map::value_type | Intersection_map_entry |
| typedef Intersection_map::iterator | Intersection_map_iterator |
Public Member Functions | |
Constrcution methods. | |
| _Conic_x_monotone_arc_2 () | |
| _Conic_x_monotone_arc_2 (const Self &arc) | |
| _Conic_x_monotone_arc_2 (const Base &arc) | |
| _Conic_x_monotone_arc_2 (const Base &arc, const Conic_id &id) | |
| _Conic_x_monotone_arc_2 (const Base &arc, const Point_2 &source, const Point_2 &target, const Conic_id &id) | |
| _Conic_x_monotone_arc_2 (const Point_2 &source, const Point_2 &target) | |
| _Conic_x_monotone_arc_2 (const Algebraic &a, const Algebraic &b, const Algebraic &c, const Point_2 &source, const Point_2 &target) | |
| const Self & | operator= (const Self &arc) |
Accessing the arc properties. | |
| const Integer & | r () const |
| const Integer & | s () const |
| const Integer & | t () const |
| const Integer & | u () const |
| const Integer & | v () const |
| const Integer & | w () const |
| const Conic_point_2 & | source () const |
| const Conic_point_2 & | target () const |
| Orientation | orientation () const |
| const Conic_point_2 & | left () const |
| const Conic_point_2 & | right () const |
| bool | is_directed_right () const |
| Bbox_2 | bbox () const |
Predicates. | |
| bool | is_vertical () const |
| bool | contains_point (const Conic_point_2 &p) const |
Constructing points on the arc. | |
| Point_2 | point_at_x (const Point_2 &p) const |
| template<class OutputIterator > | |
| OutputIterator | polyline_approximation (size_t n, OutputIterator oi) const |
| Comparison_result | compare_to_right (const Self &arc, const Conic_point_2 &p) const |
| Comparison_result | compare_to_left (const Self &arc, const Conic_point_2 &p) const |
| template<class OutputIterator > | |
| OutputIterator | intersect (const Self &arc, Intersection_map &inter_map, OutputIterator oi) const |
Constructing x-monotone arcs. | |
| void | split (const Conic_point_2 &p, Self &c1, Self &c2) const |
| Self | flip () const |
| Self | trim (const Conic_point_2 &ps, const Conic_point_2 &pt) const |
| bool | equals (const Self &arc) const |
| bool | can_merge_with (const Self &arc) const |
| void | merge (const Self &arc) |
| bool | is_upper () const |
| bool | is_lower () const |
Protected Types | |
| enum | { IS_VERTICAL_SEGMENT = 4, IS_DIRECTED_RIGHT = 8, DEGREE_1 = 16, DEGREE_2 = 32, DEGREE_MASK = 16 + 32, PLUS_SQRT_DISC_ROOT = 64, FACING_UP = 128, FACING_DOWN = 256, FACING_MASK = 128 + 256, IS_SPECIAL_SEGMENT = 512 } |
| typedef Conic_arc_2 | Base |
| typedef Conic_arc_2::Integer | Integer |
| typedef Conic_arc_2::Nt_traits | Nt_traits |
| typedef Conic_arc_2::Rat_kernel | Rat_kernel |
Protected Attributes | |
| Algebraic | alg_r |
| Algebraic | alg_s |
| Algebraic | alg_t |
| Algebraic | alg_u |
| Algebraic | alg_v |
| Algebraic | alg_w |
| Conic_id | _id |
Representation of an x-monotone conic arc. The class is templated by a representation of a general bounded conic arc.
| typedef Conic_arc_2::Alg_kernel _Conic_x_monotone_arc_2< Conic_arc_ >::Alg_kernel |
| typedef Conic_arc_2::Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::Algebraic |
typedef Conic_arc_2 _Conic_x_monotone_arc_2< Conic_arc_ >::Base [protected] |
| typedef Conic_arc_ _Conic_x_monotone_arc_2< Conic_arc_ >::Conic_arc_2 |
| typedef Conic_point_2::Conic_id _Conic_x_monotone_arc_2< Conic_arc_ >::Conic_id |
| typedef std::pair<Conic_id, Conic_id> _Conic_x_monotone_arc_2< Conic_arc_ >::Conic_pair |
| typedef Conic_arc_2::Conic_point_2 _Conic_x_monotone_arc_2< Conic_arc_ >::Conic_point_2 |
typedef Conic_arc_2::Integer _Conic_x_monotone_arc_2< Conic_arc_ >::Integer [protected] |
| typedef std::list<Intersection_point_2> _Conic_x_monotone_arc_2< Conic_arc_ >::Intersection_list |
| typedef std::map<Conic_pair, Intersection_list, Less_conic_pair> _Conic_x_monotone_arc_2< Conic_arc_ >::Intersection_map |
| typedef Intersection_map::value_type _Conic_x_monotone_arc_2< Conic_arc_ >::Intersection_map_entry |
| typedef Intersection_map::iterator _Conic_x_monotone_arc_2< Conic_arc_ >::Intersection_map_iterator |
| typedef std::pair<Conic_point_2, unsigned int> _Conic_x_monotone_arc_2< Conic_arc_ >::Intersection_point_2 |
typedef Conic_arc_2::Nt_traits _Conic_x_monotone_arc_2< Conic_arc_ >::Nt_traits [protected] |
| typedef Conic_arc_2::Point_2 _Conic_x_monotone_arc_2< Conic_arc_ >::Point_2 |
typedef Conic_arc_2::Rat_kernel _Conic_x_monotone_arc_2< Conic_arc_ >::Rat_kernel [protected] |
| typedef _Conic_x_monotone_arc_2<Conic_arc_2> _Conic_x_monotone_arc_2< Conic_arc_ >::Self |
anonymous enum [protected] |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | ) | [inline] |
Default constructor.
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Self & | arc | ) | [inline] |
Copy constructor.
| arc | The copied arc. |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Base & | arc | ) | [inline] |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Base & | arc, |
| const Conic_id & | id | ||
| ) | [inline] |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Base & | arc, |
| const Point_2 & | source, | ||
| const Point_2 & | target, | ||
| const Conic_id & | id | ||
| ) | [inline] |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Point_2 & | source, |
| const Point_2 & | target | ||
| ) | [inline] |
| _Conic_x_monotone_arc_2< Conic_arc_ >::_Conic_x_monotone_arc_2 | ( | const Algebraic & | a, |
| const Algebraic & | b, | ||
| const Algebraic & | c, | ||
| const Point_2 & | source, | ||
| const Point_2 & | target | ||
| ) | [inline] |
| Bbox_2 _Conic_x_monotone_arc_2< Conic_arc_ >::bbox | ( | ) | const [inline] |
Get a bounding box for the conic arc.
| bool _Conic_x_monotone_arc_2< Conic_arc_ >::can_merge_with | ( | const Self & | arc | ) | const [inline] |
Check whether it is possible to merge the arc with the given arc.
| arc | The query arc. |


| Comparison_result _Conic_x_monotone_arc_2< Conic_arc_ >::compare_to_left | ( | const Self & | arc, |
| const Conic_point_2 & | p | ||
| ) | const [inline] |
| Comparison_result _Conic_x_monotone_arc_2< Conic_arc_ >::compare_to_right | ( | const Self & | arc, |
| const Conic_point_2 & | p | ||
| ) | const [inline] |
| bool _Conic_x_monotone_arc_2< Conic_arc_ >::contains_point | ( | const Conic_point_2 & | p | ) | const [inline] |
Check whether the given point lies on the arc.
| p | The qury point. |
| (true) | if p lies on the arc; (false) otherwise. |

| bool _Conic_x_monotone_arc_2< Conic_arc_ >::equals | ( | const Self & | arc | ) | const [inline] |
Check whether the two arcs are equal (have the same graph).
| arc | The compared arc. |

| Self _Conic_x_monotone_arc_2< Conic_arc_ >::flip | ( | ) | const [inline] |
Flip the arc.

| OutputIterator _Conic_x_monotone_arc_2< Conic_arc_ >::intersect | ( | const Self & | arc, |
| Intersection_map & | inter_map, | ||
| OutputIterator | oi | ||
| ) | const [inline] |
| bool _Conic_x_monotone_arc_2< Conic_arc_ >::is_directed_right | ( | ) | const [inline] |
Return true iff the conic arc is directed right iexicographically.

| bool _Conic_x_monotone_arc_2< Conic_arc_ >::is_lower | ( | ) | const [inline] |
| bool _Conic_x_monotone_arc_2< Conic_arc_ >::is_upper | ( | ) | const [inline] |
| bool _Conic_x_monotone_arc_2< Conic_arc_ >::is_vertical | ( | ) | const [inline] |
Check if the conic arc is a vertical segment.

| const Conic_point_2& _Conic_x_monotone_arc_2< Conic_arc_ >::left | ( | ) | const [inline] |
Get the left endpoint of the arc.

| void _Conic_x_monotone_arc_2< Conic_arc_ >::merge | ( | const Self & | arc | ) | [inline] |
| const Self& _Conic_x_monotone_arc_2< Conic_arc_ >::operator= | ( | const Self & | arc | ) | [inline] |
Assignment operator.
| arc | The copied arc. |
| Orientation _Conic_x_monotone_arc_2< Conic_arc_ >::orientation | ( | ) | const [inline] |
Get the orientation of the arc.

| Point_2 _Conic_x_monotone_arc_2< Conic_arc_ >::point_at_x | ( | const Point_2 & | p | ) | const [inline] |
Compute a point on the arc with the same x-coordiante as the given point.
| p | The given point. |


| OutputIterator _Conic_x_monotone_arc_2< Conic_arc_ >::polyline_approximation | ( | size_t | n, |
| OutputIterator | oi | ||
| ) | const [inline] |
Get a polyline approximating the conic arc.
| n | The maximal number of sample points. |
| oi | An output iterator, whose value-type is pair<double,double> (representing an approximated point). In case the arc is a line segment, there are 2 output points, otherwise the arc is approximated by the polyline defined by (p_0, p_1, ..., p_n), where p_0 and p_n are the left and right endpoints of the arc, respectively. |


| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::r | ( | ) | const [inline] |
Get the coefficients of the underlying conic.

| const Conic_point_2& _Conic_x_monotone_arc_2< Conic_arc_ >::right | ( | ) | const [inline] |
Get the right endpoint of the arc.

| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::s | ( | ) | const [inline] |

| const Conic_point_2& _Conic_x_monotone_arc_2< Conic_arc_ >::source | ( | ) | const [inline] |
| void _Conic_x_monotone_arc_2< Conic_arc_ >::split | ( | const Conic_point_2 & | p, |
| Self & | c1, | ||
| Self & | c2 | ||
| ) | const [inline] |
Split the arc into two at a given split point.
| p | The split point. |
| c1 | Output: The first resulting arc, lying to the left of p. |
| c2 | Output: The first resulting arc, lying to the right of p. |


| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::t | ( | ) | const [inline] |

| const Conic_point_2& _Conic_x_monotone_arc_2< Conic_arc_ >::target | ( | ) | const [inline] |
| Self _Conic_x_monotone_arc_2< Conic_arc_ >::trim | ( | const Conic_point_2 & | ps, |
| const Conic_point_2 & | pt | ||
| ) | const [inline] |
| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::u | ( | ) | const [inline] |

| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::v | ( | ) | const [inline] |

| const Integer& _Conic_x_monotone_arc_2< Conic_arc_ >::w | ( | ) | const [inline] |

Conic_id _Conic_x_monotone_arc_2< Conic_arc_ >::_id [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_r [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_s [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_t [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_u [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_v [protected] |
Algebraic _Conic_x_monotone_arc_2< Conic_arc_ >::alg_w [protected] |
1.7.6.1