mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-10 07:34:03 +00:00
rtree: IndexableGetter and EqualTo handled in members_holder interface.
Fix in glut_vis example - macro name fixed. [SVN r83257]
This commit is contained in:
parent
7e6394ec68
commit
4727f94f4d
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
|
||||||
#define BOOST_GEOMETRY_INDEX_ENABLE_DEBUG_INTERFACE
|
#define BOOST_GEOMETRY_INDEX_DETAIL_ENABLE_DEBUG_INTERFACE
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ public:
|
|||||||
inline explicit rtree(parameters_type const& parameters = parameters_type(),
|
inline explicit rtree(parameters_type const& parameters = parameters_type(),
|
||||||
IndexableGetter const& indexable_getter = IndexableGetter(),
|
IndexableGetter const& indexable_getter = IndexableGetter(),
|
||||||
EqualTo const& equal_to = EqualTo())
|
EqualTo const& equal_to = EqualTo())
|
||||||
: m_members(translator_type(indexable_getter, equal_to), parameters)
|
: m_members(indexable_getter, equal_to, parameters)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -176,7 +176,7 @@ public:
|
|||||||
IndexableGetter const& indexable_getter,
|
IndexableGetter const& indexable_getter,
|
||||||
EqualTo const& equal_to,
|
EqualTo const& equal_to,
|
||||||
allocator_type allocator)
|
allocator_type allocator)
|
||||||
: m_members(translator_type(indexable_getter, equal_to), parameters, allocator)
|
: m_members(indexable_getter, equal_to, parameters, allocator)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -201,7 +201,7 @@ public:
|
|||||||
IndexableGetter const& indexable_getter = IndexableGetter(),
|
IndexableGetter const& indexable_getter = IndexableGetter(),
|
||||||
EqualTo const& equal_to = EqualTo(),
|
EqualTo const& equal_to = EqualTo(),
|
||||||
allocator_type allocator = allocator_type())
|
allocator_type allocator = allocator_type())
|
||||||
: m_members(translator_type(indexable_getter, equal_to), parameters, allocator)
|
: m_members(indexable_getter, equal_to, parameters, allocator)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -235,7 +235,7 @@ public:
|
|||||||
IndexableGetter const& indexable_getter = IndexableGetter(),
|
IndexableGetter const& indexable_getter = IndexableGetter(),
|
||||||
EqualTo const& equal_to = EqualTo(),
|
EqualTo const& equal_to = EqualTo(),
|
||||||
allocator_type allocator = allocator_type())
|
allocator_type allocator = allocator_type())
|
||||||
: m_members(translator_type(indexable_getter, equal_to), parameters, allocator)
|
: m_members(indexable_getter, equal_to, parameters, allocator)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -273,7 +273,8 @@ public:
|
|||||||
\li When memory allocation for Node fails.
|
\li When memory allocation for Node fails.
|
||||||
*/
|
*/
|
||||||
inline rtree(rtree const& src)
|
inline rtree(rtree const& src)
|
||||||
: m_members(src.m_members.translator(),
|
: m_members(src.m_members.indexable_getter(),
|
||||||
|
src.m_members.equal_to(),
|
||||||
src.m_members.parameters(),
|
src.m_members.parameters(),
|
||||||
allocator_traits_type::select_on_container_copy_construction(src.get_allocator()))
|
allocator_traits_type::select_on_container_copy_construction(src.get_allocator()))
|
||||||
{
|
{
|
||||||
@ -295,7 +296,9 @@ public:
|
|||||||
\li When memory allocation for Node fails.
|
\li When memory allocation for Node fails.
|
||||||
*/
|
*/
|
||||||
inline rtree(rtree const& src, allocator_type const& allocator)
|
inline rtree(rtree const& src, allocator_type const& allocator)
|
||||||
: m_members(src.m_members.translator(), src.m_members.parameters(), allocator)
|
: m_members(src.m_members.indexable_getter(),
|
||||||
|
src.m_members.equal_to(),
|
||||||
|
src.m_members.parameters(), allocator)
|
||||||
{
|
{
|
||||||
this->raw_copy(src, *this, false);
|
this->raw_copy(src, *this, false);
|
||||||
}
|
}
|
||||||
@ -311,7 +314,8 @@ public:
|
|||||||
Nothing.
|
Nothing.
|
||||||
*/
|
*/
|
||||||
inline rtree(BOOST_RV_REF(rtree) src)
|
inline rtree(BOOST_RV_REF(rtree) src)
|
||||||
: m_members(src.m_members.translator(),
|
: m_members(src.m_members.indexable_getter(),
|
||||||
|
src.m_members.equal_to(),
|
||||||
src.m_members.parameters(),
|
src.m_members.parameters(),
|
||||||
boost::move(src.m_members.allocators()))
|
boost::move(src.m_members.allocators()))
|
||||||
{
|
{
|
||||||
@ -335,7 +339,8 @@ public:
|
|||||||
\li When memory allocation for Node fails (only if allocators aren't equal).
|
\li When memory allocation for Node fails (only if allocators aren't equal).
|
||||||
*/
|
*/
|
||||||
inline rtree(BOOST_RV_REF(rtree) src, allocator_type const& allocator)
|
inline rtree(BOOST_RV_REF(rtree) src, allocator_type const& allocator)
|
||||||
: m_members(src.m_members.translator(),
|
: m_members(src.m_members.indexable_getter(),
|
||||||
|
src.m_members.equal_to(),
|
||||||
src.m_members.parameters(),
|
src.m_members.parameters(),
|
||||||
boost::move(allocator))
|
boost::move(allocator))
|
||||||
{
|
{
|
||||||
@ -403,8 +408,10 @@ public:
|
|||||||
{
|
{
|
||||||
this->raw_destroy(*this);
|
this->raw_destroy(*this);
|
||||||
|
|
||||||
m_members.translator() = src.m_members.translator();
|
m_members.indexable_getter() = src.m_members.indexable_getter();
|
||||||
|
m_members.equal_to() = src.m_members.equal_to();
|
||||||
m_members.parameters() = src.m_members.parameters();
|
m_members.parameters() = src.m_members.parameters();
|
||||||
|
|
||||||
boost::swap(m_members.values_count, src.m_members.values_count);
|
boost::swap(m_members.values_count, src.m_members.values_count);
|
||||||
boost::swap(m_members.leafs_level, src.m_members.leafs_level);
|
boost::swap(m_members.leafs_level, src.m_members.leafs_level);
|
||||||
boost::swap(m_members.root, src.m_members.root);
|
boost::swap(m_members.root, src.m_members.root);
|
||||||
@ -437,7 +444,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
void swap(rtree & other)
|
void swap(rtree & other)
|
||||||
{
|
{
|
||||||
boost::swap(m_members.translator(), other.m_members.translator());
|
boost::swap(m_members.indexable_getter(), other.m_members.indexable_getter());
|
||||||
|
boost::swap(m_members.equal_to(), other.m_members.equal_to());
|
||||||
boost::swap(m_members.parameters(), other.m_members.parameters());
|
boost::swap(m_members.parameters(), other.m_members.parameters());
|
||||||
m_members.allocators().swap(other.m_members.allocators());
|
m_members.allocators().swap(other.m_members.allocators());
|
||||||
|
|
||||||
@ -1014,7 +1022,8 @@ private:
|
|||||||
|
|
||||||
if ( copy_tr_and_params )
|
if ( copy_tr_and_params )
|
||||||
{
|
{
|
||||||
dst.m_members.translator() = src.m_members.translator(); // SHOULDN'T THROW
|
dst.m_members.indexable_getter() = src.m_members.indexable_getter();
|
||||||
|
dst.m_members.equal_to() = src.m_members.equal_to();
|
||||||
dst.m_members.parameters() = src.m_members.parameters();
|
dst.m_members.parameters() = src.m_members.parameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1122,11 +1131,12 @@ private:
|
|||||||
members_holder(members_holder const&);
|
members_holder(members_holder const&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
template <typename Transl, typename Alloc>
|
template <typename IndGet, typename ValEq, typename Alloc>
|
||||||
members_holder(Transl const& transl,
|
members_holder(IndGet const& ind_get,
|
||||||
|
ValEq const& val_eq,
|
||||||
Parameters const& parameters,
|
Parameters const& parameters,
|
||||||
BOOST_FWD_REF(Alloc) alloc)
|
BOOST_FWD_REF(Alloc) alloc)
|
||||||
: translator_type(transl)
|
: translator_type(ind_get, val_eq)
|
||||||
, Parameters(parameters)
|
, Parameters(parameters)
|
||||||
, allocators_type(boost::forward<Alloc>(alloc))
|
, allocators_type(boost::forward<Alloc>(alloc))
|
||||||
, values_count(0)
|
, values_count(0)
|
||||||
@ -1134,10 +1144,11 @@ private:
|
|||||||
, root(0)
|
, root(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <typename Transl>
|
template <typename IndGet, typename ValEq>
|
||||||
members_holder(Transl const& transl,
|
members_holder(IndGet const& ind_get,
|
||||||
|
ValEq const& val_eq,
|
||||||
Parameters const& parameters)
|
Parameters const& parameters)
|
||||||
: translator_type(transl)
|
: translator_type(ind_get, val_eq)
|
||||||
, Parameters(parameters)
|
, Parameters(parameters)
|
||||||
, allocators_type()
|
, allocators_type()
|
||||||
, values_count(0)
|
, values_count(0)
|
||||||
@ -1146,7 +1157,11 @@ private:
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
translator_type const& translator() const { return *this; }
|
translator_type const& translator() const { return *this; }
|
||||||
translator_type & translator() { return *this; }
|
|
||||||
|
IndexableGetter const& indexable_getter() const { return *this; }
|
||||||
|
IndexableGetter & indexable_getter() { return *this; }
|
||||||
|
EqualTo const& equal_to() const { return *this; }
|
||||||
|
EqualTo & equal_to() { return *this; }
|
||||||
Parameters const& parameters() const { return *this; }
|
Parameters const& parameters() const { return *this; }
|
||||||
Parameters & parameters() { return *this; }
|
Parameters & parameters() { return *this; }
|
||||||
allocators_type const& allocators() const { return *this; }
|
allocators_type const& allocators() const { return *this; }
|
||||||
|
@ -249,9 +249,6 @@ struct translator
|
|||||||
{
|
{
|
||||||
return EqualTo::operator()(v1, v2);
|
return EqualTo::operator()(v1, v2);
|
||||||
}
|
}
|
||||||
|
|
||||||
IndexableGetter const& indexable_get() const { return *this; }
|
|
||||||
EqualTo const& value_eq() const { return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Translator>
|
template <typename Translator>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user