The Spatial Index is a quad tree of spherical triangles
![]() | SpatialIndex (size_t maxlevel, size_t buildlevel =2) Constructor |
![]() | idByName (const char *) NodeName conversion to integer ID |
![]() | nameById (uint64 ID, char * name = 0) int32 conversion to a string (name of database) |
![]() | leafNumberById (uint64 ID) const Return leaf number in bitlist for a certain ID |
![]() | idByLeafNumber (uint32 n) const Return leaf id for a certain bitlist index |
![]() | nameByLeafNumber (uint32 n, char * name = 0) const return name for a certain leaf index (to be used for name lookup from a bitlist) |
![]() | idByPoint (SpatialVector & vector) const find a node by giving a vector |
![]() | idByPoint (const float64 & ra, const float64 & dec) const find a node by giving a ra,dec in degrees. |
![]() | nameByPoint (SpatialVector & vector, char* s=NULL) const |
![]() | nameByPoint (const float64 & ra, const float64 & dec, char* s=NULL) const find a node by giving a ra,dec in degrees. |
![]() | leafCount () const return number of leaf nodes |
![]() | nVertices () const return number of vertices |
![]() | area (uint64 ID) const The area in steradians for a given index ID |
![]() | area (const SpatialVector & v1, const SpatialVector & v2, const SpatialVector & v3) const The area in steradians for a given spatial triangle |
![]() | nodeVertex (const uint64 id, SpatialVector & v1, SpatialVector & v2, SpatialVector & v3) const return the actual vertex vectors |
![]() | nodeVertex (const size_t idx, size_t & v1, size_t & v2, size_t & v3) const return index of vertices for a node |
![]() | showVertices (ostream & out) const print all vertices to output stream |
![]() | find a node by giving a vector. |
The Spatial Index is a quad tree of spherical triangles. The tree is built in the following way: Start out with 8 triangles on the sphere using the 3 main circles to determine them. Then, every triangle can be decomposed into 4 new triangles by drawing main circles between midpoints of its edges:. /\ . / \ . /____\ . /\ /\ . / \ / \ . /____\/____\This is how the quad tree is built up to a certain level by decomposing every triangle again and again.
static uint64 idByName(const char *)
static char* nameById(uint64 ID, char * name = 0)
uint32 leafNumberById(uint64 ID) const
uint64 idByLeafNumber(uint32 n) const
char* nameByLeafNumber(uint32 n, char * name = 0) const
uint64 idByPoint(SpatialVector & vector) const
uint64 idByPoint(const float64 & ra, const float64 & dec) const
char* nameByPoint(SpatialVector & vector, char* s=NULL) const
char* nameByPoint(const float64 & ra, const float64 & dec, char* s=NULL) const
uint64 leafCount() const
size_t nVertices() const
float64 area(uint64 ID) const
float64 area(const SpatialVector & v1, const SpatialVector & v2, const SpatialVector & v3) const
void nodeVertex(const uint64 id, SpatialVector & v1, SpatialVector & v2, SpatialVector & v3) const
void nodeVertex(const size_t idx, size_t & v1, size_t & v2, size_t & v3) const
void showVertices(ostream & out) const
alphabetic index hierarchy of classes