#include <obstacle_grid.h>
Inherited by _classes_ [private]
.
Inheritance diagram for VectorHash:
Public Methods | |
operator unsigned int () const | |
The constructor of this class only takes a Vector for an argument and converts that to hashval . More... | |
VectorHash () | |
void | operator= (const VectorHash &oth) |
VectorHash (const VectorHash &oth) | |
VectorHash (const Vector &coord) | |
bool | operator== (const VectorHash &oth) const |
An equal comparism function between two VectorHash es. Since hashval is pre-calculated, all this function needs to do is check for equality. More... | |
bool | operator< (const VectorHash &oth) const |
A less than comparism function between two VectorHash es that allows for sorting. Since hashval is pre-calculated, all this function needs to do is check if our hashval is less than the other. More... | |
Static Public Methods | |
const float | shortWidth () |
A constant unexact default for the width of a Surface . More... | |
Public Attributes | |
unsigned int | hashval |
hashval is the stored hash value used for hasty comparisms. More... | |
Static Public Attributes | |
const float | ScaleAmt = (float)(2.) |
this constant is one divided by the width/height of each 'square' used for collisions with Obstacle s. More... | |
Static Private Methods | |
float | frem (float a, float b) |
An internal remainder function that only returns a positive remainder between two floats. More... |
VectorHash is a hash value used for fast sorting between (2-dimensional) Vector s. This class goes in a board x spaces forward and then y times a fake width for the Surface. This is allowed to be slightly in-accurate because of unlikeliness of getting the same number twice between the range of a short int.
|
00031 { 00032 hashval=0; 00033 } |
|
|
|
00038 { 00039 Vector crd (coord.Scale(ScaleAmt)); 00040 hashval =((unsigned int)((frem(floor(crd.i),shortWidth()))+(shortWidth()*floor(crd.j)))); 00041 } |
|
An internal remainder function that only returns a positive remainder between two floats.
00013 { 00014 float ne=fmod(a,b); 00015 if (ne<0) { 00016 return b+ne; 00017 } else { 00018 return ne; 00019 } 00020 } |
|
The constructor of this class only takes a Vector for an argument and converts that to hashval .
00028 { 00029 return hashval; 00030 } |
|
A less than comparism function between two VectorHash es that allows for sorting. Since hashval is pre-calculated, all this function needs to do is check if our hashval is less than the other.
|
|
|
|
An equal comparism function between two VectorHash es. Since hashval is pre-calculated, all this function needs to do is check for equality.
|
|
A constant unexact default for the width of a Surface .
00025 {return 65536-129;} |
|
hashval is the stored hash value used for hasty comparisms.
|
|
this constant is one divided by the width/height of each 'square' used for collisions with Obstacle s.
|