Skip to content

C++ Map

cpp
template <typename ValueT, size_t XCount, size_t YCount, typename XAxisT = int32_t, typename YAxisT = int32_t>
class table::Map

Owning fixed-size two-axis lookup map.

Map

cpp
table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::Map()=default

Constructs an uninitialised map with zeroed storage.

init

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::init(const XAxisT(&xAxis)[XCount], const YAxisT(&yAxis)[YCount], const ValueT(&cells)[XCount *YCount]) noexcept

Copies and validates a complete row-major map.

xAxis Strictly increasing X-axis points. yAxis Strictly increasing Y-axis points. cells Flat row-major cells. Operation status.

init

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::init(const XAxisT(&xAxis)[XCount], const YAxisT(&yAxis)[YCount], const ValueT(&cells)[YCount][XCount]) noexcept

Copies and validates a complete two-dimensional row-major map.

xAxis Strictly increasing X-axis points. yAxis Strictly increasing Y-axis points. cells Cells indexed as [y][x]. Operation status.

isReady

cpp
bool table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::isReady() const noexcept

Tests whether initialisation succeeded.

True when ready for lookup.

lookup

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::lookup(float x, float y, float &output) const noexcept

Performs a clamped bilinear lookup.

x Finite X coordinate. y Finite Y coordinate. output Result written only on success. Operation status.

setX

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::setX(size_t index, XAxisT value) noexcept

Replaces an X-axis point while preserving ordering.

index Point index. value New value. Operation status.

setY

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::setY(size_t index, YAxisT value) noexcept

Replaces a Y-axis point while preserving ordering.

index Point index. value New value. Operation status.

setCell

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::setCell(size_t xIndex, size_t yIndex, ValueT value) noexcept

Replaces a map cell.

xIndex X index. yIndex Y index. value New value. Operation status.

x

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::x(size_t index, XAxisT &value) const noexcept

Reads an X-axis point.

index Point index. value Value written only on success. Operation status.

y

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::y(size_t index, YAxisT &value) const noexcept

Reads a Y-axis point.

index Point index. value Value written only on success. Operation status.

cell

cpp
Status table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::cell(size_t xIndex, size_t yIndex, ValueT &value) const noexcept

Reads a map cell.

xIndex X index. yIndex Y index. value Value written only on success. Operation status.

nativeView

cpp
const table_view_t * table::Map< ValueT, XCount, YCount, XAxisT, YAxisT >::nativeView() const noexcept

Accesses the immutable native view.

View pointer, or null before initialisation.

Released under the MIT Licence.