GraphLookupTable.h
Go to the documentation of this file.
1// *****************************************************************
2// Filename: GraphLookupTable.h
3// Copyright: Kai Welke, Chair Prof. Dillmann (IAIM),
4// Institute for Computer Science and Engineering (CSE),
5// University of Karlsruhe. All rights reserved.
6// Author: Kai Welke
7// Date: 10.10.2008
8// *****************************************************************
9
10#pragma once
11
12// *****************************************************************
13// includes
14// *****************************************************************
15#include <list>
16
17#include "SphericalGraph.h"
18
19// *****************************************************************
20// decleration of CGraphLookupTable
21// *****************************************************************
23{
24public:
25 // construction / destruction
26 CGraphLookupTable(int nMaxZenithBins, int nMaxAzimuthBins);
28
29 // build table
31
32 // operation
33 int getClosestNode(Eigen::Vector3d position);
34 int getClosestNode(TSphereCoord position);
35 int getClosestNode(Eigen::Vector3d position, bool& bExact);
36 int getClosestNode(TSphereCoord position, bool& bExact);
37
38private:
39 void buildMemory();
40 void cleanMemory();
41 void addEntry(TSphereCoord position, int nIndex);
42 void reset();
43
44 int getNumberZenithBins();
45 int getNumberAzimuthBins(float fZenith);
46 int getAzimuthBinIndex(float fAzimuth, float fZenith);
47 int getZenithBinIndex(float fZenith);
48
49 void getBinMinMaxValues(int nZenithBinIndex,
50 int nAzimuthBinIndex,
51 float& fMinZenith,
52 float& fMaxZenith,
53 float& fMinAzimuth,
54 float& fMaxAzimuth);
55
56 int m_nMaxZenithBins;
57 int m_nMaxAzimuthBins;
58
59 std::list<int>** m_ppTable;
60
61 CSphericalGraph* m_pGraph;
62};
CGraphLookupTable(int nMaxZenithBins, int nMaxAzimuthBins)
int getClosestNode(Eigen::Vector3d position)
void buildLookupTable(CSphericalGraph *pGraph)