mirror of https://github.com/CGAL/cgal
Shortened the calls to object from the segment traits
Instead of having lots of calls like: m_poly_traits->m_seg_traits->equal_2_object(); I added, where needed, const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2(); and then replaced the above line with: seg_traits->equal_2_object();
This commit is contained in:
parent
88550ef207
commit
5adf42f96a
|
|
@ -430,16 +430,17 @@ public:
|
|||
unsigned int n2 = cv2.number_of_segments();
|
||||
|
||||
// Check the pairwise equality of the contained segments.
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
typename Segment_traits_2::Compare_x_2 compare_x =
|
||||
m_poly_traits->m_seg_traits->compare_x_2_object();
|
||||
seg_traits->compare_x_2_object();
|
||||
typename Segment_traits_2::Compare_y_at_x_2 compare_y_at_x =
|
||||
m_poly_traits->m_seg_traits->compare_y_at_x_2_object();
|
||||
seg_traits->compare_y_at_x_2_object();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 min_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 max_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
Is_vertical_2 is_vertical = m_poly_traits->is_vertical_2_object();
|
||||
Point_2 point1,point2;
|
||||
Comparison_result res_x;
|
||||
|
|
@ -548,10 +549,11 @@ public:
|
|||
const_seg_iterator it_next = start_seg;
|
||||
++it_next;
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
Construct_x_monotone_curve_2 construct_x_monotone_curve =
|
||||
m_poly_traits->construct_x_monotone_curve_2_object();
|
||||
|
||||
|
|
@ -570,9 +572,9 @@ public:
|
|||
// Polyline contains at least 2 segments!
|
||||
|
||||
typename Segment_traits_2::Compare_xy_2 comp_xy =
|
||||
m_poly_traits->m_seg_traits->compare_xy_2_object();
|
||||
seg_traits->compare_xy_2_object();
|
||||
typename Segment_traits_2::Is_vertical_2 is_vertical =
|
||||
m_poly_traits->m_seg_traits->is_vertical_2_object();
|
||||
seg_traits->is_vertical_2_object();
|
||||
|
||||
const_seg_iterator it_start = start_seg;
|
||||
const_seg_iterator it_curr = start_seg;
|
||||
|
|
@ -634,12 +636,14 @@ public:
|
|||
{
|
||||
int num_seg = cv.number_of_segments();
|
||||
CGAL_precondition(num_seg > 1);
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
int last_seg = num_seg-1;
|
||||
|
||||
|
|
@ -666,12 +670,13 @@ public:
|
|||
{
|
||||
int num_seg = cv.number_of_segments();
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
// cv is empty
|
||||
if (num_seg == 0)
|
||||
|
|
@ -706,13 +711,14 @@ public:
|
|||
|
||||
CGAL_precondition(num_seg > 0);
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
|
||||
CGAL_precondition_code(
|
||||
typename Segment_traits_2::Compare_x_2 comp_x =
|
||||
m_seg_traits->compare_x_2_object();
|
||||
CGAL_precondition_code(comp_x(get_max_v(cv[num_seg-1]),p)==LARGER);
|
||||
seg_traits->compare_x_2_object();
|
||||
CGAL_precondition(comp_x(get_max_v(cv[num_seg-1]),p)==LARGER);
|
||||
);
|
||||
cv.push_back(Segment_2(get_max_v(cv[num_seg-1]),p));
|
||||
}
|
||||
|
|
@ -735,14 +741,15 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Compare_x_2 comp_x =
|
||||
m_poly_traits->m_seg_traits->compare_x_2_object();
|
||||
seg_traits->compare_x_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
CGAL_precondition_code(
|
||||
if (num_seg == 1);
|
||||
|
|
@ -782,12 +789,13 @@ public:
|
|||
void operator()(const X_monotone_curve_2& cv, const Point_2& p,
|
||||
X_monotone_curve_2& c1, X_monotone_curve_2& c2) const
|
||||
{
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 min_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 max_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
// Make sure the split point is not one of the curve endpoints.
|
||||
CGAL_precondition(!equal(min_vertex(cv[0]), p));
|
||||
|
|
@ -860,18 +868,19 @@ public:
|
|||
const X_monotone_curve_2& cv2,
|
||||
OutputIterator oi)
|
||||
{
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 min_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 max_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
typename Segment_traits_2::Compare_xy_2 compare_xy =
|
||||
m_poly_traits->m_seg_traits->compare_xy_2_object();
|
||||
seg_traits->compare_xy_2_object();
|
||||
typename Segment_traits_2::Intersect_2 intersect =
|
||||
m_poly_traits->m_seg_traits->intersect_2_object();
|
||||
seg_traits->intersect_2_object();
|
||||
typename Segment_traits_2::Compare_y_at_x_2 compare_y_at_x =
|
||||
m_poly_traits->m_seg_traits->compare_y_at_x_2_object();
|
||||
seg_traits->compare_y_at_x_2_object();
|
||||
|
||||
const unsigned int n1 = cv1.number_of_segments();
|
||||
const unsigned int n2 = cv2.number_of_segments();
|
||||
|
|
@ -1057,14 +1066,15 @@ public:
|
|||
bool operator()(const X_monotone_curve_2& cv1,
|
||||
const X_monotone_curve_2& cv2) const
|
||||
{
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 min_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 max_vertex =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
typename Segment_traits_2::Is_vertical_2 is_vertical =
|
||||
m_poly_traits->m_seg_traits->is_vertical_2_object();
|
||||
seg_traits->is_vertical_2_object();
|
||||
|
||||
const unsigned int n1 = cv1.number_of_segments();
|
||||
const unsigned int n2 = cv2.number_of_segments();
|
||||
|
|
@ -1203,12 +1213,13 @@ public:
|
|||
* independently from the SegmentTraits in use, as we do not allow
|
||||
* a polyline with degenerated segments.
|
||||
*/
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
CGAL_precondition_msg(!equal(get_min_v(seg),get_max_v(seg)),
|
||||
"Cannot construct a degenerated segment");
|
||||
|
|
@ -1285,14 +1296,15 @@ public:
|
|||
|
||||
CGAL_precondition_code
|
||||
(
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Compare_xy_2 comp_xy =
|
||||
m_poly_traits->m_seg_traits->compare_xy_2_object();
|
||||
seg_traits->compare_xy_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
);
|
||||
|
||||
if (++next == end)
|
||||
|
|
@ -1376,12 +1388,13 @@ public:
|
|||
* independently from the SegmentTraits in use, as we do not allow
|
||||
* a polyline with degenerated segments.
|
||||
*/
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
CGAL_precondition_msg(!equal(get_min_v(seg),get_max_v(seg)),
|
||||
"Cannot construct a degenerated segment");
|
||||
|
|
@ -1420,12 +1433,14 @@ public:
|
|||
++pt;
|
||||
CGAL_precondition (pt != end);
|
||||
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
|
||||
// Initialize two comparison functors
|
||||
CGAL_precondition_code(typename Segment_traits_2::Compare_x_2 compare_x =
|
||||
m_poly_traits->m_seg_traits->compare_x_2_object();
|
||||
seg_traits->compare_x_2_object();
|
||||
);
|
||||
typename Segment_traits_2::Compare_xy_2 compare_xy =
|
||||
m_poly_traits->m_seg_traits->compare_xy_2_object();
|
||||
seg_traits->compare_xy_2_object();
|
||||
|
||||
// Make sure there is no change of directions as we traverse the polyline.
|
||||
// Save the comp_x between the first two points
|
||||
|
|
@ -1481,19 +1496,20 @@ public:
|
|||
"one segment");
|
||||
|
||||
// Functors that have to be used always
|
||||
const Segment_traits_2* seg_traits = m_poly_traits->segment_traits_2();
|
||||
typename Segment_traits_2::Construct_min_vertex_2 get_min_v =
|
||||
m_poly_traits->m_seg_traits->construct_min_vertex_2_object();
|
||||
seg_traits->construct_min_vertex_2_object();
|
||||
typename Segment_traits_2::Construct_max_vertex_2 get_max_v =
|
||||
m_poly_traits->m_seg_traits->construct_max_vertex_2_object();
|
||||
seg_traits->construct_max_vertex_2_object();
|
||||
typename Segment_traits_2::Equal_2 equal =
|
||||
m_poly_traits->m_seg_traits->equal_2_object();
|
||||
seg_traits->equal_2_object();
|
||||
|
||||
CGAL_precondition_code
|
||||
(
|
||||
// A functor which is used only when validity tests of the
|
||||
// input have to be ran.
|
||||
typename Segment_traits_2::Is_vertical_2 is_vertical =
|
||||
m_poly_traits->m_seg_traits->is_vertical_2_object();
|
||||
seg_traits->is_vertical_2_object();
|
||||
|
||||
InputIterator curr = begin;
|
||||
// Ensure that the first segment does not degenerate to a point.
|
||||
|
|
|
|||
Loading…
Reference in New Issue