ISpatialIndexFactory.hpp
1 #ifndef DM_ISPATIAL_INDEX_FACTORY_HPP_INCLUDED
2 #define DM_ISPATIAL_INDEX_FACTORY_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/Handle.hpp"
10 #include "DM/IDatamanager.hpp"
11 #include "DM/IParameterSet.hpp"
12 #include "DM/IPointIndexLeaf.hpp"
13 #include "DM/AutoLink.hpp" //enable autolink
14 
15 DM_NAMESPACE_BEGIN
16 
17 class DM_API ISpatialIndexFactory : public ObjectBase
18 {
19 public:
20  static ISpatialIndexFactory *New();
21 
22 protected:
23  virtual ~ISpatialIndexFactory() {}
24 
25 public:
26  virtual IPointIndexLeaf* newKdTree(int dimension, bool threadsafe) = 0;
27  virtual IPointIndexLeaf* newKdTreeWithLazyDeletion(int dimension, bool threadsafe) = 0;
28 };
30 
31 DM_NAMESPACE_END
32 
33 #endif //DM_ISPATIAL_INDEX_FACTORY_HPP_INCLUDED