This is the documentation for Enlighten.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

class Geo::GeoSpatialHash

The 3D hash table.

Classes

Name Description
Geo::GeoSpatialHash::GridCellBlock

The grid index box.

Variables

Name Description
Geo::s32 m_Capacity

The capacity of the grid.

Geo::s32 * m_CellOffsets

This is the number of items in each cell.

Geo::GeoArray< GeoSpatialHashEntry > m_CellRefs

This is of size n, where n is the number of items.

Geo::v128 m_CellSize

The size of each cell. Divide by this to convert to voxel space.

Geo::s32 m_GridCells[3]

The grid discrete size.

Geo::v128 m_GridExtents

The grid extents.

Geo::v128 m_GridOffset

The grid offset. Add something this to a vector to get it into grid space.

Geo::s32 m_NumCells

This the number of cells.

bool m_Sorted

Has this been prepared?

Functions

Name Description
~GeoSpatialHash()

Destructor.

AddInBounds(const Geo::GeoBoundingBox &, Geo::s32)

Add an object to an extent.

GeoSpatialHash(const Geo::GeoBoundingBox &, Geo::u32, Geo::u32, Geo::u32, Geo::u32)

Constructor. CellCount is how many cells along each axis there should be.

GetBaseKey(Geo::u32, Geo::u32, Geo::u32)

Get the base key.

GetGridCellBlock(const Geo::GeoBoundingBox &, GridCellBlock &)

Convert a bbox to GridIndexBox.

GetInExtent(const Geo::GeoBoundingBox &, Geo::GeoArray< Geo::s32 > &)

Get the list of objects inside a given bounding box.

GetObjectsInCell(Geo::u32, Geo::GeoArray< Geo::s32 > &)

Get all the objects inside a given cell.

PrepareMap()

Once you've added all the vertices, call this.

QSortComparison(const void *, const void *)

Function used by qsort to compare map entries.

TransformPoint(const Geo::v128 &)

Transform a point into our voxel space.


Geo::GeoSpatialHash::~GeoSpatialHash


public: ~GeoSpatialHash()


Destructor.


bool Geo::GeoSpatialHash::AddInBounds


public: bool AddInBounds
(
    const Geo::GeoBoundingBox & bbox,
    Geo::s32 vertex
)


Add an object to an extent.


Geo::GeoSpatialHash::GeoSpatialHash


public: GeoSpatialHash
(
    const Geo::GeoBoundingBox & extents,
    Geo::u32 numEntries,
    Geo::u32 xCells,
    Geo::u32 yCells,
    Geo::u32 zCells
)


Constructor. CellCount is how many cells along each axis there should be.


Geo::u32 Geo::GeoSpatialHash::GetBaseKey


protected: Geo::u32 GetBaseKey
(
    Geo::u32 x,
    Geo::u32 y,
    Geo::u32 z
) const


Get the base key.


void Geo::GeoSpatialHash::GetGridCellBlock


protected: void GetGridCellBlock
(
    const Geo::GeoBoundingBox & bbox,
    GridCellBlock & grid
) const


Convert a bbox to GridIndexBox.


bool Geo::GeoSpatialHash::GetInExtent


public: bool GetInExtent
(
    const Geo::GeoBoundingBox & bbox,
    Geo::GeoArray< Geo::s32 > & vertexIDList
) const


Get the list of objects inside a given bounding box.


void Geo::GeoSpatialHash::GetObjectsInCell


protected: void GetObjectsInCell
(
    Geo::u32 key,
    Geo::GeoArray< Geo::s32 > & list
) const


Get all the objects inside a given cell.


void Geo::GeoSpatialHash::PrepareMap


public: void PrepareMap()


Once you've added all the vertices, call this.


static Geo::s32 Geo::GeoSpatialHash::QSortComparison


protected: Geo::s32 QSortComparison
(
    const void * arg1,
    const void * arg2
)


Function used by qsort to compare map entries.


Geo::v128 Geo::GeoSpatialHash::TransformPoint


protected: Geo::v128 TransformPoint
(
    const Geo::v128 & point
) const


Transform a point into our voxel space.

  • No labels