Fix: AABBTraits must not require size_type. The size_type is an

implementation detail of the class template AABB_tree, and traits classes
cannot know that type.
This commit is contained in:
Laurent Rineau 2009-07-08 16:16:15 +00:00
parent fbbefdde2a
commit 0d7cc0b6b5
6 changed files with 15 additions and 8 deletions

4
.gitignore vendored
View File

@ -1,3 +1,7 @@
AABB_tree/demo/AABB_tree/*.exe
AABB_tree/demo/AABB_tree/*.sln
AABB_tree/demo/AABB_tree/*.vcproj
AABB_tree/demo/AABB_tree/AABB_demo
AABB_tree/demo/AABB_tree/CMakeLists.txt
AABB_tree/demo/AABB_tree/Makefile
AABB_tree/examples/AABB_tree/*.kdev*

View File

@ -23,8 +23,6 @@ The concept \ccRefName\ provides the geometric primitive types and methods for t
\ccTypes
\ccNestedType{size_type}{Unsigned integral type.}
\ccNestedType{FT}{Value type of the \ccc{Squared_distance} functor.}
\ccNestedType{Point_3}{Type of a 3D point.}

View File

@ -25,7 +25,7 @@ Class \ccRefName\ is a static data structure for efficient intersection and dist
\ccTypes
\ccTypedef{AT::size_type size_type;}
\ccNestedType{size_type;}
{Unsigned integral size type.}
\ccGlue
\ccTypedef{AT::FT FT;}

View File

@ -46,7 +46,6 @@ public:
typedef AABB_primitive Primitive;
typedef typename AABB_primitive::Datum Datum;
typedef unsigned int size_type;
typedef typename GeomTraits::Point_3 Point;

View File

@ -40,7 +40,6 @@ namespace CGAL {
/// types
typedef typename AABBTraits::FT FT;
typedef typename AABBTraits::Point Point;
typedef typename AABBTraits::size_type size_type;
typedef typename AABBTraits::Primitive Primitive;
typedef typename AABBTraits::Bounding_box Bounding_box;
typedef typename AABBTraits::Primitive::Id Primitive_id;
@ -51,6 +50,13 @@ namespace CGAL {
// internal KD-tree used to accelerate the distance queries
typedef AABB_search_tree<AABBTraits> Search_tree;
// type of the primitives container
typedef std::vector<Primitive> Primitives;
public:
// size type is the size_type of the primitive container
typedef typename Primitives::size_type size_type;
public:
/**
* @brief Constructor
@ -416,7 +422,7 @@ namespace CGAL {
private:
// set of input primitives
std::vector<Primitive> m_primitives;
Primitives m_primitives;
// single root node
Node* m_p_root_node;
// search KD-tree
@ -517,7 +523,7 @@ namespace CGAL {
// iterate over primitives to get reference points on them
std::vector<Point_and_primitive_id> points;
typename std::vector<Primitive>::const_iterator it;
typename Primitives::const_iterator it;
for(it = m_primitives.begin(); it != m_primitives.end(); ++it)
points.push_back(Point_and_primitive_id(it->reference_point(), it->id()));

View File

@ -304,7 +304,7 @@ class Naive_implementations
typedef typename Pr_generator::Primitive Pr;
typedef CGAL::AABB_traits<K, Pr> Traits;
typedef typename Pr_generator::iterator Polyhedron_primitive_iterator;
typedef typename Traits::size_type size_type;
typedef unsigned int size_type;
typedef typename Traits::Object_and_primitive_id Object_and_primitive_id;
typedef typename Pr::Id Primitive_id;
typedef typename Traits::FT FT;