mirror of https://github.com/CGAL/cgal
Do not copy the traits object
This commit is contained in:
parent
f6e3221d98
commit
804184ba78
|
|
@ -83,15 +83,11 @@ typedef R::Collinear_are_ordered_along_line_2 Collinear_are_ordered_along_line_2
|
|||
*/
|
||||
typedef R::Are_strictly_ordered_along_line_2 Are_strictly_ordered_along_line_2;
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
typedef CGAL::Polygon_traits_2<R> Poly_Traits;
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
typedef Poly_Traits::Point_2 Point_2;
|
||||
typedef R::Point_2 Point_2;
|
||||
|
||||
/*!
|
||||
|
||||
|
|
@ -101,7 +97,7 @@ typedef std::list<Point_2> Container;
|
|||
/*!
|
||||
|
||||
*/
|
||||
typedef CGAL::Polygon_2<Poly_Traits, Container> Polygon_2;
|
||||
typedef CGAL::Polygon_2<R, Container> Polygon_2;
|
||||
|
||||
/*!
|
||||
|
||||
|
|
|
|||
|
|
@ -54,12 +54,11 @@ int main( )
|
|||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
|
||||
assert(CGAL::partition_is_valid_2(polygon.vertices_begin(),
|
||||
polygon.vertices_end(),
|
||||
partition_polys.begin(),
|
||||
partition_polys.end(),
|
||||
traits));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
Traits_ traits;
|
||||
const Traits_& traits;
|
||||
};
|
||||
|
||||
template <class Traits_>
|
||||
|
|
@ -321,7 +321,7 @@ public:
|
|||
}
|
||||
|
||||
private :
|
||||
Traits traits;
|
||||
const Traits& traits;
|
||||
List m_list ;
|
||||
};
|
||||
|
||||
|
|
@ -532,7 +532,7 @@ private :
|
|||
}
|
||||
|
||||
private :
|
||||
Traits traits;
|
||||
const Traits& traits;
|
||||
Map m_map ;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ private:
|
|||
}
|
||||
|
||||
Left_turn_2 _left_turn;
|
||||
Traits traits;
|
||||
const Traits& traits;
|
||||
};
|
||||
|
||||
template <class Traits_>
|
||||
|
|
|
|||
|
|
@ -41,11 +41,11 @@ public:
|
|||
|
||||
Partition_is_valid_traits_2()
|
||||
{}
|
||||
|
||||
|
||||
Partition_is_valid_traits_2(const Traits& traits)
|
||||
: Traits(traits)
|
||||
{}
|
||||
|
||||
public:
|
||||
Is_valid
|
||||
is_valid_object(const Traits& traits) const
|
||||
{ return Is_valid(traits); }
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ private:
|
|||
typedef Partition_traits_adapter_2<Base_traits,PointPropertyMap> Self;
|
||||
|
||||
PointPropertyMap ppmap;
|
||||
|
||||
public:
|
||||
|
||||
Partition_traits_adapter_2(const Base_traits& base=Base_traits())
|
||||
|
|
@ -68,11 +69,11 @@ public:
|
|||
|
||||
const PointPropertyMap& ppmap;
|
||||
|
||||
typename BaseFct::result_type operator()(Arg_type p, Arg_type q) const {
|
||||
typename BaseFct::result_type operator()(const Arg_type& p, const Arg_type& q) const {
|
||||
return static_cast<const BaseFct*>(this)->operator()(get(ppmap,p),get(ppmap,q));
|
||||
}
|
||||
|
||||
typename BaseFct::result_type operator()(Arg_type p, Arg_type q, Arg_type r) const {
|
||||
typename BaseFct::result_type operator()(const Arg_type& p, const Arg_type& q, const Arg_type& r) const {
|
||||
return static_cast<const BaseFct*>(this)->operator()(get(ppmap,p),get(ppmap,q),get(ppmap,r));
|
||||
}
|
||||
};
|
||||
|
|
@ -91,12 +92,6 @@ public:
|
|||
|
||||
|
||||
|
||||
typename K::Collinear_are_ordered_along_line_2::result_type
|
||||
operator()(Arg_type p, Arg_type q, const typename K::Point_2& r) const
|
||||
{
|
||||
return fct(p.first, q.first, r);
|
||||
}
|
||||
|
||||
typename K::Collinear_are_ordered_along_line_2::result_type
|
||||
operator()(Arg_type p, Arg_type q, Arg_type r) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,28 +47,28 @@ template <class Traits>
|
|||
class Is_convex_2
|
||||
{
|
||||
public:
|
||||
Is_convex_2(Traits t): traits(t) {}
|
||||
Is_convex_2(const Traits& t): traits(t) {}
|
||||
|
||||
template <class ForwardIterator>
|
||||
bool operator()(ForwardIterator first, ForwardIterator last)
|
||||
{ return is_convex_2(first, last, traits); }
|
||||
|
||||
private:
|
||||
Traits traits;
|
||||
const Traits& traits;
|
||||
};
|
||||
|
||||
template <class Traits>
|
||||
class Is_y_monotone_2
|
||||
{
|
||||
public:
|
||||
Is_y_monotone_2(Traits t): traits(t) {}
|
||||
Is_y_monotone_2(const Traits& t): traits(t) {}
|
||||
|
||||
template <class ForwardIterator>
|
||||
bool operator()(ForwardIterator first, ForwardIterator last)
|
||||
{ return is_y_monotone_2(first, last, traits); }
|
||||
|
||||
private:
|
||||
Traits traits;
|
||||
const Traits& traits;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -147,7 +147,9 @@ class Polygon_2 {
|
|||
/// @{
|
||||
|
||||
/// Creates an empty polygon.
|
||||
Polygon_2(const Traits & p_traits = Traits()) : traits(p_traits) {}
|
||||
Polygon_2() : traits() {}
|
||||
|
||||
Polygon_2(const Traits & p_traits) : traits(p_traits) {}
|
||||
|
||||
/// Copy constructor.
|
||||
Polygon_2(const Polygon_2<Traits_P,Container_P>& polygon)
|
||||
|
|
|
|||
Loading…
Reference in New Issue