Main Page
Module List
Reference documentation
Namespaces
Classes
Examples
distroDM
c++_api
inc
DM
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
};
29
typedef
Handle< ISpatialIndexFactory >
SpatialIndexFactoryHandle
;
30
31
DM_NAMESPACE_END
32
33
#endif //DM_ISPATIAL_INDEX_FACTORY_HPP_INCLUDED