34 #pragma clang diagnostic push
35 #pragma clang diagnostic ignored "-Woverloaded-virtual"
38#include <NDEVR/TableColumn.h>
39#include <NDEVR/RGBColor.h>
40#include <NDEVR/Matrix.h>
41#include <NDEVR/Bounds.h>
42#include <NDEVR/TypeInfo.h>
43#include <NDEVR/BinaryFile.h>
44#include <NDEVR/String.h>
45#include <NDEVR/Compressor.h>
46#include "BinaryFileTableInfo.h"
55 template<
class t_type>
70 template<
class t_buffer_type>
78 lib_assert(
false,
"not yet implemented");
102 template<
class t_type>
157 [[nodiscard]]
inline decltype(
auto)
operator[](
const uint04 index)
164 [[nodiscard]]
inline decltype(
auto)
operator[](
const uint04 index)
const
185 if (
file.version_number < 1762047417)
187 if (
file.version_number > 1539350691)
205 if (
file.version_number <= 1539350691)
207 file.file.seek(
file.file.position() +
sizeof(t_type));
210 else if (
file.version_number <= 1613942093)
213 file.file.readNow(default_value_buffer);
214 lib_assert(default_value_buffer.size() == 1,
"Bad buffer read");
254 m_buffer.template addSpace<true>(index, 1U);
278 if (destination < source)
308 if (sorted_remove_indices.size() == 0)
310 uint04 current_position = 0;
311 uint04 current_remove_index = 0;
314 if (current_remove_index >= sorted_remove_indices.size() || i != sorted_remove_indices[current_remove_index])
320 current_remove_index++;
323 lib_assert(current_remove_index == sorted_remove_indices.size(),
"Unexpected end remove value");
335 uint04 current_position = offset;
336 for (
uint04 i = 0; i < indices.size(); i++)
344 uint04 removed_size = current_position;
345 for (
uint04 i = offset + indices.size(); i <
m_buffer.size(); i++)
350 m_buffer.setSize(
m_buffer.size() - (indices.size() - (removed_size - offset)));
377 _mapToFile(
file,
object);
447 void _mapToFile(BinaryFileTableInfo&
file, BinaryCompressionObject&
object)
449 file.file.writeCompression(
object);
489 template<u
int01 t_dims,
class t_type>
612 uint08 result = 2166136261U;
613 std::hash<t_type> hash;
616 for (
uint01 i = 0; i < t_dims; i++)
617 result = (127 * result) + hash(v[i]);
627 new_vector_array->
setSize(selected_indices.count(
true));
629 for (
uint04 i = 0; i < selected_indices.size(); i++)
631 if (selected_indices[i])
636 return new_vector_array;
649 for (
uint04 i = 0; i < TableColumnBuffer<Vector<t_dims, t_type>>
::m_buffer.size(); i++)
651 for (
uint01 n = 0; n < t_dims; n++)
679 for (
uint04 i = 0; i < TableColumnBuffer<Vector<t_dims, t_type>>
::m_buffer.size(); i++)
681 for (
uint01 n = 0; n < t_dims; n++)
710 for (
uint04 i = 0; i < TableColumnBuffer<Vector<t_dims, t_type>>
::m_buffer.size(); i++)
712 for (
uint01 n = 0; n < t_dims; n++)
732 for (
uint04 i = 0; i < TableColumnBuffer<Vector<t_dims, t_type>>
::m_buffer.size(); i++)
734 for (
uint01 n = 0; n < t_dims; n++)
756 lib_assert(t_dims == 6,
"Bounds can only be accessed from 6 dimension vectors");
757 if constexpr (std::is_same_v<fltp08, t_type>)
765 b = bounds.template as<3, fltp08>();
770 lib_assert(t_dims == 6,
"Bounds can only be accessed from 6 dimension vectors");
771 if constexpr (std::is_same_v<fltp04, t_type>)
779 b = bounds.template as<3, fltp04>();
785 lib_assert(t_dims == 6,
"Bounds can only be accessed from 6 dimension vectors");
786 if constexpr (std::is_same_v<fltp08, t_type>)
799 lib_assert(t_dims == 6,
"Bounds can only be accessed from 6 dimension vectors");
800 if constexpr (std::is_same_v<fltp04, t_type>)
817 template<
class t_type, u
int01 t_cols, u
int01 t_rows>
855 lib_assert(
false,
"Cannot get as string view");
863 if constexpr (t_cols == 4 && t_rows == 4 && std::is_same_v<fltp08, t_type>)
871 transform = matrix.template as<fltp08, 4, 4>();
876 if constexpr (t_cols == 4 && t_rows == 4 && std::is_same_v<fltp04, t_type>)
884 transform = matrix.template as<fltp04, 4, 4>();
889 if constexpr (t_cols == 4 && t_rows == 4 && std::is_same_v<fltp08, t_type>)
901 if constexpr (t_cols == 4 && t_rows == 4 && std::is_same_v<fltp04, t_type>)
918 template<
class t_type>
1014 new_vector_array->
setSize(selected_indices.count(
true));
1015 uint04 current_index = 0;
1016 for (
uint04 i = 0; i < selected_indices.size(); i++)
1018 if (selected_indices[i])
1023 return new_vector_array;
1030 this->
template _insertIndices<t_type>(location,
size);
1037 this->
template _removeIndices<t_type>(location,
size);
1043 this->
template _removeIndices<t_type>(offset_lookup_list);
1050 this->
template _swapIndices<t_type>(a, b);
1055 template<
class t_n_type>
1061 for (
uint04 i = 0; i < TableColumnBuffer<t_type>::m_buffer.size(); i++)
1065 if (value >= location &&
IsValid(value))
1071 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1079 template<
class t_n_type>
1080 void _insertIndices(
uint04 location,
typename std::enable_if<!ObjectInfo<t_n_type>::Number || ObjectInfo<t_n_type>::Dimensions >= 16,
uint04>
::type size) {
1087 template<
class t_n_type>
1088 void _removeIndices(
uint04 location,
typename std::enable_if<ObjectInfo<t_n_type>::Number && ObjectInfo<t_n_type>::Dimensions < 16, uint04>::type
size)
1092 Bounds<1, uint04> update_range = Constant<Bounds<1, uint04>>
::Min;
1093 for (
uint04 i = 0; i < TableColumnBuffer<t_type>::m_buffer.size(); i++)
1101 update_range.addToBounds(i);
1104 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1112 template<
class t_n_type>
1113 void _removeIndices(
uint04 location,
typename std::enable_if<!ObjectInfo<t_n_type>::Number || ObjectInfo<t_n_type>::Dimensions >= 16,
uint04>
::type size) {UNUSED(location); UNUSED(
size); }
1116 template<
class t_n_type>
1117 void _removeIndices(
typename std::enable_if<ObjectInfo<t_n_type>::Number,
const Buffer<uint04>&>
::type offset_lookup_list)
1119 Bounds<1, uint04> update_range = Constant<Bounds<1, uint04>>
::Min;
1120 for (
uint04 i = 0; i < TableColumnBuffer<t_type>::m_buffer.size(); i++)
1128 update_range.addToBounds(i);
1132 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1142 template<
class t_n_type>
1143 void _swapIndices(
typename std::enable_if<ObjectInfo<t_n_type>::Number,
uint04>
::type a,
uint04 b)
1145 for (
uint04 i = 0; i < TableColumnBuffer<t_type>::m_buffer.size(); i++)
1157 template<
class t_n_type>
1158 void _swapIndices(
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
uint04>
::type a,
uint04 b) { UNUSED(a); UNUSED(b);}
1160 template<
class t_n_type>
1161 void _removeIndices(
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
const Buffer<uint04>&>
::type offset_lookup_list) {UNUSED(offset_lookup_list);}
1180 void get(
uint04,
bool& value)
const override { value =
false; };
1192 void set(
uint04 index,
RGBColor value)
override { UNUSED(index); UNUSED(value); lib_assert(
false,
"cannot get as color"); };
1233 template<
class t_type>
1308 void get(
uint04 index,
StringView& value)
const override { lib_assert(
false,
"unimplemented"); UNUSED(index); UNUSED(value); };
1309 void get(
uint04 index,
RGBColor& value)
const override { lib_assert(
false,
"unimplemented"); UNUSED(index); UNUSED(value); };
1315 this->
template _insertIndices<t_type>(location,
size);
1320 this->
template _removeIndices<t_type>(location,
size);
1325 this->
template _removeIndices<t_type>(offset_lookup_list);
1330 this->
template _swapIndices<t_type>(a, b);
1336 uint08 result = 2166136261U;
1337 std::hash<t_type> hash;
1340 for(
uint04 i = 0; i < b.size(); i++)
1341 result = (127 * result) + hash(b[i]);
1353 template<
class t_n_type>
1359 for (
uint04 i = 0; i < TableColumnBuffer<Buffer<t_type>>
::m_buffer.size(); i++)
1361 for (
uint04 n = 0; n < TableColumnBuffer<Buffer<t_type>>
::m_buffer[i].size(); n++)
1371 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1379 template<
class t_n_type>
1380 void _insertIndices(
uint04 location,
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
uint04>
::type size) { UNUSED(location); UNUSED(
size); }
1384 template<
class t_n_type>
1385 void _removeIndices(
uint04 location,
typename std::enable_if<ObjectInfo<t_n_type>::Number,
uint04>
::type size)
1389 Bounds<1, uint04> update_range = Constant<Bounds<1, uint04>>
::Min;
1390 for (
uint04 i = 0; i < TableColumnBuffer<Buffer<t_type>>
::m_buffer.size(); i++)
1400 update_range.addToBounds(i);
1404 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1414 template<
class t_n_type>
1415 void _swapIndices(
typename std::enable_if<ObjectInfo<t_n_type>::Number,
uint04>
::type a,
uint04 b)
1417 for (
uint04 i = 0; i < TableColumnBuffer<Buffer<t_type>>
::m_buffer.size(); i++)
1433 template<
class t_n_type>
1434 void _removeIndices(
uint04 location,
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
uint04>
::type size)
1442 template<
class t_n_type>
1443 void _removeIndices(
typename std::enable_if<ObjectInfo<t_n_type>::Number,
const Buffer<uint04>&>
::type offset_lookup_list)
1445 Bounds<1, uint04> update_range = Constant<Bounds<1, uint04>>
::Min;
1446 for (
uint04 i = 0; i < TableColumnBuffer<Buffer<t_type>>
::m_buffer.size(); i++)
1456 update_range.addToBounds(i);
1461 update_range.addToBounds(i);
1466 if (update_range != Constant<Bounds<1, uint04>>
::Min)
1474 template<
class t_n_type>
1475 void _swapIndices(
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
uint04>
::type a,
uint04 b)
1481 template<
class t_n_type>
1482 void _removeIndices(
typename std::enable_if<!ObjectInfo<t_n_type>::Number,
const Buffer<uint04>&>
::type offset_lookup_list)
1484 UNUSED(offset_lookup_list);
1588 if (
IsValid(value) && value >= location)
1604 uint08 result = 2166136261U;
1606 result = (127 * result) ^ s.hash();
1612 lib_assert(
false,
"Not implemented");
1627 if (
IsValid(value) && value > location)
1629 if (value < location +
size)
1645 UNUSED(offset_lookup_list);
1646 lib_assert(
false,
"Not yet implemented");
1653 if (
file.version_number < 1614203273)
1657 else if (
file.version_number < 1614739690)
1659 bool allow_multithreading =
false;
1660 file.file.readStringBuffer(
m_buffer, allow_multithreading);
1795 new_vector_array->
setSize(selected_indices.count(
true));
1796 uint04 current_index = 0;
1797 for (
uint04 i = 0; i < selected_indices.size(); i++)
1799 if (selected_indices[i])
1804 return new_vector_array;
1809 template<
class T>
struct ColumnTBase {
using type = TableVectorType<1, T>; };
1811 template<
class T>
struct ColumnTBase<
Buffer<T>> {
using type = TableColumnTypeBuffer<T>; };
1812 template<>
struct ColumnTBase<
Buffer<
RGBColor>> {
using type = TableColumnTypeBuffer<uint04>; };
1814 template<u
int01 t_dims,
class T>
struct ColumnTBase<
Vector<t_dims, T>> {
using type = TableVectorType<t_dims, T>; };
1816 template<>
struct ColumnTBase<
String> {
using type = TableColumnString; };
1817 template<>
struct ColumnTBase<
StringView> {
using type = TableColumnString; };
1818 template<>
struct ColumnTBase<
TranslatedString> {
using type = TableColumnString; };
1820 template<>
struct ColumnTBase<
RGBColor> {
using type = TableColumnColorType; };
1821 template<>
struct ColumnTBase<
Time> {
using type = TableVectorType<1, uint08>; };
1823 template<
class T, u
int01 t_cols, u
int01 t_rows>
1824 struct ColumnTBase<
Matrix<T, t_cols, t_rows>> {
using type = TableMatrixType<T, t_cols, t_rows>; };
1826 template<u
int01 t_dims,
class T>
1827 struct ColumnTBase<
Bounds<t_dims, T>> {
using type = TableVectorType<2 * t_dims, T>; };
1829 template<>
struct ColumnTBase<
Vector<8, bool>> {
using type = TableVectorType<1, uint01>; };
1830 template<>
struct ColumnTBase<
Vector<16, bool>> {
using type = TableVectorType<1, uint02>; };
1831 template<>
struct ColumnTBase<
Vector<32, bool>> {
using type = TableVectorType<1, uint04>; };
1832 template<>
struct ColumnTBase<
Vector<64, bool>> {
using type = TableVectorType<1, uint08>; };
1835 using ColumnT =
typename ColumnTBase<T>::type;
1838 #pragma clang diagnostic pop
A specification of upper and lower bounds in N-dimensions.
constexpr void addToBounds(const t_vertex &vector)
constexpr decltype(auto) as(t_new_type extra_fill_value=t_new_type(0)) const
Casts this object into an object of different dimension or precision.
constexpr Ray< t_dims, t_type > span() const
The side lengths of these bounds.
The equivelent of std::vector but with a bit more control.
static std::enable_if<!ObjectInfo< t_type >::Buffer >::type Compress(BinaryCompressionObject &object, Buffer< uint01 > &compression_data, const Buffer< t_type, t_memory_manager > &data)
Compresses a buffer of non-buffer (flat) elements into the given compression object.
Templated logic for doing matrix multiplication.
Represents a color in the RGB space with optional alpha transparency.
This class is like a string view, but may optionally store the data internally Useful if the return t...
The core String View class for the NDEVR API.
t_type getAs() const
Converts a string into an object.
The core String class for the NDEVR API.
decltype(auto) getAs() const
Converts a string into an object.
bool hasSubString(const StringView &sub_string, bool ignore_case=false, uint04 start_idx=0) const
Tests if this String contains the specified substring.
bool beginsWith(const StringView &s, bool ignore_case=false) const
Tests if this String starts with the specified prefix.
A base class for a Table column with N-number of rows held in a Buffer object.
TableColumnBuffer(const StringView &label, const t_type &default_value)
Constructs a TableColumnBuffer with the given label and explicit default value.
virtual void setDefaultValue(const StringAllocatingView &value) override
Sets the default value for new rows by parsing a string representation.
virtual void mapToFile(BinaryFileTableInfo &file, int compression) override
Writes the column data to a binary file with the given compression mode.
TableColumnBuffer(const Buffer< t_type > &buffer, const StringView &label)
Constructs a TableColumnBuffer from an existing buffer of data.
void set(uint04 index, const t_type &value)
Sets the value at the given row index.
void insert(uint04 index) override
Inserts a new row at the given index, initialized to the default value.
uint04 size() const override
Returns the number of rows in this column.
bool m_has_been_read
Whether data has been read from file and needs finalization.
void removeRow(uint04 index) override
Removes a single row at the given index.
virtual void addRow() override
Appends a new row initialized with the default value.
decltype(auto) defaultValue() const
Returns a const reference to the default value.
decltype(auto) pullValue(uint04 index) const
Returns a const reference to the value at the given row index.
void * end() override
Returns a pointer past the end of the raw data buffer.
virtual void removeRows(uint04 index, uint04 size) override
Removes a contiguous range of rows starting at the given index.
virtual void finishMapFromFile(BinaryFileTableInfo &file) override
Completes file deserialization by extracting the default value from the buffer.
void * begin() override
Returns a pointer to the beginning of the raw data buffer.
virtual void insertRows(uint04 location, uint04 size) override
Inserts multiple rows at the given location, each initialized to the default value.
virtual void copyRows(uint04 source, uint04 destination, uint04 size) override
Copies a contiguous range of rows from source to destination.
bool contains(uint04 index, const StringView &value, bool ignore_case) const override
Checks whether the string form of the value at the given row contains a substring.
const void * end() const override
Returns a const pointer past the end of the raw data buffer.
Buffer< uint01 > m_compressed_data
Temporary storage for compressed column data.
const void * begin() const override
Returns a const pointer to the beginning of the raw data buffer.
bool beginsWith(uint04 index, const StringView &value, bool ignore_case) const override
Checks whether the string form of the value at the given row begins with a prefix.
decltype(auto) pullValue(uint04 index)
Returns a reference to the value at the given row index.
virtual void swap(uint04 a, uint04 b) override
Swaps the values at two row indices.
void removeRows(uint04 offset, const Buffer< bool > &indices) override
Removes rows using a boolean mask starting at the given offset.
virtual void mapToFile(BinaryFileTableInfo &file, BinaryCompressionObject &object) override
Writes pre-compressed column data to a binary file.
virtual void mapFromFile(BinaryFileTableInfo &file) override
Reads the column data from a binary file, handling multiple version formats.
void setSize(uint04 size) override
Resizes the column to the specified number of rows.
const StringAllocatingView getDefaultValue() const override
Returns the default value as a string representation.
t_type m_default_value
The default value assigned to new rows.
bool isSame(uint04 index, const StringView &value) const override
Checks whether the value at the given row equals the provided string value.
Buffer< t_type > m_buffer
The underlying data buffer storing all row values.
virtual TypeInfo type() const override
Returns TypeInfo describing the stored element type t_type.
virtual void removeRows(const Buffer< uint04 > &sorted_remove_indices) override
Removes rows at the specified sorted indices.
decltype(auto) defaultValue()
Returns a reference to the default value.
TableColumnBuffer(const StringView &label)
Constructs a TableColumnBuffer with the given label and an invalid default value.
virtual void compress(BinaryCompressionObject &object) override
Compresses the column data into a binary compression object.
virtual void resetRow(uint04 row) override
Resets the specified row to the default value.
virtual void setDefaultValueFrom(const TableColumn &column) override
Copies the default value from another column into this one.
virtual void copyRow(uint04 source, uint04 destination) override
Copies the value from the source row to the destination row.
void set(uint04 index, uint04 vector_pos, sint04 value) override
Sets a sint04 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, uint08 value) override
Sets a uint08 value at a specific vector position within a row.
void get(uint04 index, uint08 &value) const override
Retrieves a uint08 value at the given row index.
void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
void set(uint04 index, uint04 vector_pos, sint02 value) override
Sets a sint02 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, sint08 value) override
Sets a sint08 value at a specific vector position within a row.
void set(uint04 index, RGBColor value) override
Sets an RGBColor value at the given row index.
void get(uint04 index, fltp08 &value) const override
Retrieves a fltp08 value at the given row index.
void get(uint04 index, RGBColor &value) const override
Retrieves an RGBColor value at the given row index.
virtual void setDefaultValue(const StringAllocatingView &value) override
Sets the default color value by parsing a string representation.
void set(uint04 index, uint04 vector_pos, bool value) override
Sets a single color channel at the given row and channel position. Float values are scaled from [0,...
void get(uint04 index, uint04 vector_pos, sint04 &value) const override
Retrieves a sint04 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, fltp04 value) override
Sets a fltp04 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, sint01 value) override
Sets a sint01 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, StringAllocatingView &value) const override
Retrieves a string value at a specific vector position within a row.
void get(uint04 index, sint02 &value) const override
Retrieves a sint02 value at the given row index.
void get(uint04 index, bool &value) const override
Gets a scalar value from the color at the given row.
TableColumnColorType * getSelected(const Buffer< bool > &selected_indices) const override
Creates a new column containing only the rows marked true in the selection mask.
void get(uint04 index, uint01 &value) const override
Retrieves a uint01 value at the given row index.
void get(uint04 index, sint08 &value) const override
Retrieves a sint08 value at the given row index.
virtual void swapIndices(uint04, uint04) override
Asserts; swap indices is not implemented for color columns.
void get(uint04 index, uint04 vector_pos, uint04 &value) const override
Retrieves a uint04 value at a specific vector position within a row.
void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
void get(uint04 index, uint04 vector_pos, uint02 &value) const override
Retrieves a uint02 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, fltp08 value) override
Sets a fltp08 value at a specific vector position within a row.
TableColumnColorType(const StringView &label)
Constructs a TableColumnColorType with the given column label.
void get(uint04 index, uint04 vector_pos, uint01 &value) const override
Retrieves a uint01 value at a specific vector position within a row.
void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
void get(uint04 index, sint01 &value) const override
Retrieves a sint01 value at the given row index.
void get(uint04 index, uint04 vector_pos, fltp04 &value) const override
Retrieves a fltp04 value at a specific vector position within a row.
void get(uint04 index, uint04 &value) const override
Retrieves a uint04 value at the given row index.
void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
void get(uint04 index, uint02 &value) const override
Retrieves a uint02 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint02 &value) const override
Retrieves a sint02 value at a specific vector position within a row.
virtual TypeInfo type() const override
Returns TypeInfo describing the RGBColor type.
void removeIndices(uint04, uint04) override
Asserts; remove indices is not implemented for color columns.
void get(uint04 index, fltp04 &value) const override
Retrieves a fltp04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint01 value) override
Sets a uint01 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, fltp08 &value) const override
Retrieves a fltp08 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, sint01 &value) const override
Retrieves a sint01 value at a specific vector position within a row.
void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
void removeIndices(const Buffer< uint04 > &) override
Asserts; remove indices by lookup is not implemented for color columns.
void set(uint04 index, uint04 vector_pos, uint02 value) override
Sets a uint02 value at a specific vector position within a row.
TableColumnColorType(const Buffer< RGBColor > &buffer, const String &label)
Constructs a TableColumnColorType from a pre-populated buffer of colors.
void get(uint04 index, uint04 vector_pos, sint08 &value) const override
Retrieves a sint08 value at a specific vector position within a row.
void insertIndices(uint04, uint04) override
Asserts; insert indices is not implemented for color columns.
void get(uint04, StringView &) const override
Retrieves a string value at the given row index as a StringView.
void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
void get(uint04 index, uint04 vector_pos, bool &value) const override
Gets a single color channel at the given row and channel position. Float overloads return normalized ...
void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
void set(uint04 index, bool value) override
Sets the entire color at the given row from various value types. Integer values are interpreted as pa...
void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
void get(uint04 index, sint04 &value) const override
Retrieves a sint04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint04 value) override
Sets a uint04 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, const StringView &value) override
Sets a string value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, uint08 &value) const override
Retrieves a uint08 value at a specific vector position within a row.
void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
void set(uint04 index, uint04 vector_pos, sint02 value) override
Sets a sint02 value at a specific vector position within a row.
void get(uint04 index, bool &value) const override
Gets a value by parsing the entire string at the given row.
void get(uint04 index, uint04 vector_pos, uint04 &value) const override
Retrieves a uint04 value at a specific vector position within a row.
void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
void get(uint04 index, uint04 vector_pos, fltp08 &value) const override
Retrieves a fltp08 value at a specific vector position within a row.
virtual void removeIndices(const Buffer< uint04 > &offset_lookup_list) override
Asserts; lookup-table-based index removal is not yet implemented for strings.
void set(uint04 index, uint04 vector_pos, uint02 value) override
Sets a uint02 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, uint01 &value) const override
Retrieves a uint01 value at a specific vector position within a row.
void get(uint04 index, StringView &value) const override
Retrieves a string value at the given row index as a StringView.
void set(uint04 index, uint04 vector_pos, bool value) override
Inserts the string representation of a value at the given character position.
void setRowSize(uint04 index, uint04 size) override
Sets the character count of the string at the given row.
void get(uint04 index, uint08 &value) const override
Retrieves a uint08 value at the given row index.
void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint08 value) override
Sets a uint08 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, fltp04 &value) const override
Retrieves a fltp04 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, uint08 &value) const override
Retrieves a uint08 value at a specific vector position within a row.
void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
void get(uint04 index, uint04 &value) const override
Retrieves a uint04 value at the given row index.
bool beginsWith(uint04 index, const StringView &value, bool ignore_case) const final override
Checks if the string at the given row begins with the provided prefix.
uint08 tableHash() const override
Computes a hash of the entire string column using FNV-like hashing.
virtual TypeInfo type() const override
Returns TypeInfo describing the String type.
void get(uint04 index, uint04 vector_pos, sint01 &value) const override
Retrieves a sint01 value at a specific vector position within a row.
void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
void set(uint04 index, uint04 vector_pos, sint01 value) override
Sets a sint01 value at a specific vector position within a row.
bool contains(uint04 index, const StringView &value, bool ignore_case) const final override
Checks if the string at the given row contains the provided substring.
void get(uint04 index, fltp04 &value) const override
Retrieves a fltp04 value at the given row index.
void get(uint04 index, sint01 &value) const override
Retrieves a sint01 value at the given row index.
void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint04 &value) const override
Retrieves a sint04 value at a specific vector position within a row.
void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint04 value) override
Sets a uint04 value at a specific vector position within a row.
void set(uint04 index, RGBColor value) override
Sets an RGBColor value at the given row index.
void set(uint04 index, uint04 vector_pos, fltp04 value) override
Sets a fltp04 value at a specific vector position within a row.
TableColumnString * getSelected(const Buffer< bool > &selected_indices) const override
Creates a filtered copy; currently returns nullptr (unimplemented).
void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
virtual void mapFromFile(BinaryFileTableInfo &file) override
Reads the string column from a binary file, handling multiple version formats.
void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
void get(uint04 index, sint04 &value) const override
Retrieves a sint04 value at the given row index.
void set(uint04 index, bool value) override
Sets the entire string at the given row from a numeric or string value.
void get(uint04 index, fltp08 &value) const override
Retrieves a fltp08 value at the given row index.
void removeRows(uint04 offset, const Buffer< bool > &indices) override
No-op override for boolean-mask row removal (unimplemented for strings).
void set(uint04 index, uint04 vector_pos, sint08 value) override
Sets a sint08 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, sint08 &value) const override
Retrieves a sint08 value at a specific vector position within a row.
virtual void removeIndices(uint04 location, uint04 size) override
Adjusts stored index references (parsed as integers) after removal.
void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
void get(uint04 index, uint04 vector_pos, uint02 &value) const override
Retrieves a uint02 value at a specific vector position within a row.
void get(uint04 index, sint02 &value) const override
Retrieves a sint02 value at the given row index.
virtual void insertIndices(uint04 location, uint04 size) override
Adjusts stored index references (parsed as integers from strings) after insertion.
bool isSame(uint04 index, const StringView &value) const override
Checks if the string at the given row is equal to the provided value.
uint04 getRowSize(uint04 index) const override
Returns the character count of the string at the given row.
void get(uint04 index, uint01 &value) const override
Retrieves a uint01 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint02 &value) const override
Retrieves a sint02 value at a specific vector position within a row.
void set(uint04, uint04, const StringView &) override
Sets a string value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, uint01 value) override
Sets a uint01 value at a specific vector position within a row.
TableColumnString(const StringView &label)
Constructs a TableColumnString with the given column label.
void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
void get(uint04 index, uint02 &value) const override
Retrieves a uint02 value at the given row index.
void get(uint04 index, uint04 vector_pos, StringAllocatingView &value) const override
Retrieves a string value at a specific vector position within a row.
virtual void swapIndices(uint04, uint04) override
Asserts; swap indices is not implemented for string columns.
void get(uint04 index, sint08 &value) const override
Retrieves a sint08 value at the given row index.
void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
void get(uint04 index, RGBColor &value) const override
Retrieves an RGBColor value at the given row index.
void set(uint04 index, uint04 vector_pos, sint04 value) override
Sets a sint04 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, bool &value) const override
Gets a value from a substring starting at the given character position.
void set(uint04 index, uint04 vector_pos, fltp08 value) override
Sets a fltp08 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, uint02 &value) const override
Retrieves a uint02 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, bool &value) const override
Gets a single element from the buffer at the given row and vector position.
void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
void get(uint04 index, uint04 vector_pos, uint08 &value) const override
Retrieves a uint08 value at a specific vector position within a row.
void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
TableColumnTypeBuffer< t_type > * getSelected(const Buffer< bool > &selected_indices) const override
Creates a filtered copy; currently returns nullptr (unimplemented).
void set(uint04 index, uint04 vector_pos, uint02 value) override
Sets a uint02 value at a specific vector position within a row.
virtual void swapIndices(uint04 a, uint04 b) override
Swaps all stored references to index a with b and vice versa.
void get(uint04 index, sint02 &value) const override
Retrieves a sint02 value at the given row index.
void get(uint04 index, uint04 vector_pos, uint01 &value) const override
Retrieves a uint01 value at a specific vector position within a row.
uint08 tableHash() const override
Computes a hash of the entire column data using FNV-like hashing.
void get(uint04 index, fltp04 &value) const override
Retrieves a fltp04 value at the given row index.
void get(uint04 index, fltp08 &value) const override
Retrieves a fltp08 value at the given row index.
void set(uint04 index, RGBColor value) override
Sets an RGBColor value at the given row index.
void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
void get(uint04 index, uint04 vector_pos, fltp04 &value) const override
Retrieves a fltp04 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, fltp04 value) override
Sets a fltp04 value at a specific vector position within a row.
void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
void get(uint04 index, uint04 vector_pos, uint04 &value) const override
Retrieves a uint04 value at a specific vector position within a row.
void setRowSize(uint04 index, uint04 size) override
Sets the size of the per-row buffer at the given index.
void set(uint04 index, uint04 vector_pos, fltp08 value) override
Sets a fltp08 value at a specific vector position within a row.
virtual TypeInfo type() const override
Returns TypeInfo describing the stored Buffer<t_type>.
virtual void removeIndices(const Buffer< uint04 > &offset_lookup_list) override
Remaps stored index references using a lookup table after removal.
virtual void removeIndices(uint04 location, uint04 size) override
Adjusts stored index references after indices are removed elsewhere.
TableColumnTypeBuffer(const StringView &label)
Constructs a TableColumnTypeBuffer with the given column label.
void set(uint04 index, uint04 vector_pos, const StringView &value) override
Sets a string value at a specific vector position within a row.
void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
void get(uint04 index, uint01 &value) const override
Retrieves a uint01 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint01 value) override
Sets a uint01 value at a specific vector position within a row.
void get(uint04 index, RGBColor &value) const override
Retrieves an RGBColor value at the given row index.
void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint01 &value) const override
Retrieves a sint01 value at a specific vector position within a row.
void get(uint04 index, uint08 &value) const override
Retrieves a uint08 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint04 &value) const override
Retrieves a sint04 value at a specific vector position within a row.
void get(uint04 index, sint01 &value) const override
Retrieves a sint01 value at the given row index.
void get(uint04 index, StringView &value) const override
Retrieves a string value at the given row index as a StringView.
void get(uint04 index, bool &value) const override
Gets a scalar value from the last element of the buffer at the given row.
void set(uint04 index, bool value) override
Sets all elements in the buffer at the given row to a single broadcast value.
void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint04 value) override
Sets a uint04 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, StringAllocatingView &value) const override
Retrieves a string value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, sint01 value) override
Sets a sint01 value at a specific vector position within a row.
uint04 getRowSize(uint04 index) const override
Returns the size of the per-row buffer at the given index.
void set(uint04 index, uint04 vector_pos, sint02 value) override
Sets a sint02 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, sint08 value) override
Sets a sint08 value at a specific vector position within a row.
void get(uint04 index, uint04 vector_pos, sint02 &value) const override
Retrieves a sint02 value at a specific vector position within a row.
void set(uint04 index, uint04 vector_pos, sint04 value) override
Sets a sint04 value at a specific vector position within a row.
void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
virtual void insertIndices(uint04 location, uint04 size) override
Adjusts stored index references after indices are inserted elsewhere.
void set(uint04 index, uint04 vector_pos, bool value) override
Sets a single element within the buffer at the given row and position.
void get(uint04 index, sint08 &value) const override
Retrieves a sint08 value at the given row index.
void get(uint04 index, uint04 vector_pos, fltp08 &value) const override
Retrieves a fltp08 value at a specific vector position within a row.
void get(uint04 index, sint04 &value) const override
Retrieves a sint04 value at the given row index.
void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
void get(uint04 index, uint04 vector_pos, sint08 &value) const override
Retrieves a sint08 value at a specific vector position within a row.
void get(uint04 index, uint02 &value) const override
Retrieves a uint02 value at the given row index.
void get(uint04 index, uint04 &value) const override
Retrieves a uint04 value at the given row index.
void set(uint04 index, uint04 vector_pos, uint08 value) override
Sets a uint08 value at a specific vector position within a row.
A virtual storage type that is used with Table class to store data where the actual mechanism for sto...
virtual uint04 size() const =0
Returns the number of rows in this column.
virtual const StringAllocatingView getDefaultValue() const =0
Returns the default value for new rows as a string representation.
Buffer< TableChange > m_changes
The list of recorded changes for change-tracking and synchronization.
CompressionMode m_compression_mode
The compression mode used when serializing this column.
const String & label() const
Returns the label (name) of this column.
virtual void setDefaultValue(const StringAllocatingView &value)=0
Sets the default value for new rows from a string representation.
TableColumn(const StringView &label)
Constructs a TableColumn with the given label.
Time m_modified_time
The timestamp of the most recent modification to this column.
virtual void set(uint04 index, const Matrix< fltp08 > &transform) override
Sets a 4x4 fltp08 matrix value at the given row index.
void get(uint04 index, StringView &value) const override
Asserts; StringView get is not supported for matrix types.
virtual void set(uint04 index, const Matrix< fltp04 > &transform) override
Sets a 4x4 fltp04 matrix value at the given row index.
void set(uint04 index, const StringView &value) override
Sets the matrix value at the given row from a string representation.
virtual void get(uint04 index, Matrix< fltp04 > &transform) const override
Retrieves a 4x4 fltp04 matrix from the given row index.
virtual void get(uint04 index, Matrix< fltp08 > &transform) const override
Gets or sets a Matrix value at the given row with type conversion.
void get(uint04 index, StringAllocatingView &value) const override
Gets the matrix value at the given row as a string.
virtual void setDefaultValue(const StringAllocatingView &value) override
Sets the default matrix value from a string representation.
TableMatrixType(const StringView &label)
Constructs a TableMatrixType with the given column label.
virtual void get(uint04 index, UUID &id) const final override
Gets the UUID value at the given row.
void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
TableVectorType(const StringView &label)
Constructs a UUID column with the given label.
void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
virtual void set(uint04 index, const UUID &value) final override
Sets the UUID value at the given row.
void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
decltype(auto) pullValue(uint04 index)
Returns a reference to the underlying 16-byte vector at the given row.
void get(uint04, bool &value) const override
Type-converting get/set overrides for UUID column storage. UUIDs are stored as 16-byte vectors intern...
void get(uint04, StringView &) const override
Retrieves a string value at the given row index as a StringView.
void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
void set(uint04 index, bool value) override
Sets a bool value at the given row index.
void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
void set(uint04 index, RGBColor value) override
Sets an RGBColor value at the given row index.
void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
decltype(auto) pullValue(uint04 index) const
Returns a const reference to the underlying 16-byte vector at the given row.
void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
void get(uint04 index, uint04, sint04 &value) const override
Retrieves a sint04 value at a specific vector position within a row.
void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
virtual void swapIndices(uint04 a, uint04 b) override
Swaps all stored references to index a with b and vice versa.
void set(uint04 index, uint04, uint04 value) override
Sets a uint04 value at a specific vector position within a row.
void get(uint04 index, uint04 &value) const override
Retrieves a uint04 value at the given row index.
void set(uint04 index, uint04, fltp08 value) override
Sets a fltp08 value at a specific vector position within a row.
void get(uint04 index, uint02 &value) const override
Retrieves a uint02 value at the given row index.
void get(uint04 index, fltp08 &value) const override
Retrieves a fltp08 value at the given row index.
void get(uint04 index, uint04, uint04 &value) const override
Retrieves a uint04 value at a specific vector position within a row.
void get(uint04 index, uint04, uint01 &value) const override
Retrieves a uint01 value at a specific vector position within a row.
void get(uint04 index, sint04 &value) const override
Retrieves a sint04 value at the given row index.
void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
void get(uint04, RGBColor &) const override
Retrieves an RGBColor value at the given row index.
void get(uint04 index, sint08 &value) const override
Retrieves a sint08 value at the given row index.
void get(uint04 index, uint04, fltp08 &value) const override
Retrieves a fltp08 value at a specific vector position within a row.
void set(uint04 index, uint04, const StringView &value) override
Sets a string value at a specific vector position within a row.
void set(uint04 index, uint04, uint02 value) override
Sets a uint02 value at a specific vector position within a row.
void get(uint04, StringView &) const override
Retrieves a string value at the given row index as a StringView.
void set(uint04 index, bool value) override
Sets the scalar value at the given row from various numeric and string types.
void get(uint04 index, uint01 &value) const override
Retrieves a uint01 value at the given row index.
TableVectorType(const StringView &label)
Constructs a scalar TableVectorType with the given column label.
void get(uint04 index, uint04, sint02 &value) const override
Retrieves a sint02 value at a specific vector position within a row.
void get(uint04 index, sint02 &value) const override
Retrieves a sint02 value at the given row index.
void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
void get(uint04 index, uint08 &value) const override
Retrieves a uint08 value at the given row index.
void get(uint04 index, uint04, sint01 &value) const override
Retrieves a sint01 value at a specific vector position within a row.
void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
void set(uint04 index, uint04, sint08 value) override
Sets a sint08 value at a specific vector position within a row.
void set(uint04 index, uint04, bool value) override
Sets the value at the given row, ignoring the vector_pos parameter for scalar types.
void set(uint04 index, uint04, sint02 value) override
Sets a sint02 value at a specific vector position within a row.
void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
virtual uint04 getRowSize(uint04) const override
Returns 1, since this is a scalar (single-component) column.
void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
virtual void insertIndices(uint04 location, uint04 size) override
Adjusts stored index references after indices are inserted elsewhere.
void set(uint04 index, uint04, sint01 value) override
Sets a sint01 value at a specific vector position within a row.
TableVectorType< 1, t_type > * getSelected(const Buffer< bool > &selected_indices) const override
Creates a new column containing only the rows marked true in the selection mask.
void get(uint04 index, uint04, sint08 &value) const override
Retrieves a sint08 value at a specific vector position within a row.
void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
virtual void removeIndices(const Buffer< uint04 > &offset_lookup_list) override
Remaps stored index references using a lookup table after removal.
void get(uint04 index, uint04, uint02 &value) const override
Retrieves a uint02 value at a specific vector position within a row.
void set(uint04, RGBColor) override
Sets an RGBColor value at the given row index.
void set(uint04 index, uint04, fltp04 value) override
Sets a fltp04 value at a specific vector position within a row.
void get(uint04 index, uint04, uint08 &value) const override
Retrieves a uint08 value at a specific vector position within a row.
void get(uint04 index, sint01 &value) const override
Retrieves a sint01 value at the given row index.
void set(uint04 index, uint04, uint01 value) override
Sets a uint01 value at a specific vector position within a row.
virtual void removeIndices(uint04 location, uint04 size) override
Adjusts stored index references after indices are removed elsewhere.
void get(uint04 index, uint04, StringAllocatingView &value) const override
Retrieves a string value at a specific vector position within a row.
void set(uint04 index, uint04, sint04 value) override
Sets a sint04 value at a specific vector position within a row.
void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
TableVectorType(const Buffer< bool > &buffer, const StringView &label)
Constructs a scalar TableVectorType from a pre-populated buffer.
void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
void get(uint04 index, fltp04 &value) const override
Retrieves a fltp04 value at the given row index.
void set(uint04 index, uint04, uint08 value) override
Sets a uint08 value at a specific vector position within a row.
void get(uint04 index, uint04, fltp04 &value) const override
Retrieves a fltp04 value at a specific vector position within a row.
void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
void get(uint04 index, bool &value) const override
Gets the scalar value at the given row, cast to the requested output type.
void get(uint04 index, uint04, bool &value) const override
Gets the scalar value at the given row, ignoring vector_pos for scalar types.
void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
virtual TypeInfo type() const override
Returns TypeInfo describing the stored scalar type.
virtual void get(uint04 index, Bounds< 3, fltp08 > &b) const override
Gets or sets a 3D Bounds value stored as a 6-component vector at the given row.
virtual void set(uint04 index, uint04 vector_pos, uint04 value) override
Sets a uint04 value at a specific vector position within a row.
virtual void get(uint04 index, uint04 &value) const override
Retrieves a uint04 value at the given row index.
virtual void get(uint04 index, uint04 vector_pos, sint02 &value) const override
Retrieves a sint02 value at a specific vector position within a row.
virtual void set(uint04 index, const Bounds< 3, fltp08 > &b) override
virtual void removeIndices(uint04 location, uint04 size) override
Adjusts index references stored in this column after rows are removed elsewhere.
virtual void get(uint04 index, uint01 &value) const override
Retrieves a uint01 value at the given row index.
virtual void get(uint04 index, fltp08 &value) const override
Retrieves a fltp08 value at the given row index.
virtual void set(uint04 index, uint04 vector_pos, const StringView &value) override
Sets a string value at a specific vector position within a row.
virtual void get(uint04 index, uint04 vector_pos, uint04 &value) const override
Retrieves a uint04 value at a specific vector position within a row.
virtual void set(uint04 index, uint02 value) override
Sets a uint02 value at the given row index.
virtual void set(uint04 index, uint04 vector_pos, fltp04 value) override
Sets a fltp04 value at a specific vector position within a row.
virtual void set(uint04 index, uint04 vector_pos, sint02 value) override
Sets a sint02 value at a specific vector position within a row.
TableVectorType(const Buffer< Vector< t_dims, t_type > > &buffer, const StringView &label)
Constructs a TableVectorType from a pre-populated buffer of vectors.
virtual void get(uint04 index, uint04 vector_pos, uint08 &value) const override
Retrieves a uint08 value at a specific vector position within a row.
virtual void swapIndices(uint04 a, uint04 b) override
Swaps all index references to a with b and vice versa throughout the column.
virtual void get(uint04 index, sint08 &value) const override
Retrieves a sint08 value at the given row index.
virtual void set(uint04 index, uint04 vector_pos, uint01 value) override
Sets a uint01 value at a specific vector position within a row.
virtual void set(uint04 index, RGBColor value) override
Sets an RGBColor value at the given row index.
virtual void get(uint04 index, uint04 vector_pos, uint01 &value) const override
Retrieves a uint01 value at a specific vector position within a row.
virtual void set(uint04 index, sint02 value) override
Sets a sint02 value at the given row index.
virtual void set(uint04 index, uint08 value) override
Sets a uint08 value at the given row index.
virtual void get(uint04 index, sint04 &value) const override
Retrieves a sint04 value at the given row index.
virtual void insertIndices(uint04 location, uint04 size) override
Adjusts index references stored in this column after rows are inserted elsewhere.
virtual void get(uint04 index, uint04 vector_pos, uint02 &value) const override
Retrieves a uint02 value at a specific vector position within a row.
virtual void get(uint04 index, bool &value) const override
Gets a scalar value from the first component of the vector at the given row. Both branches of the if ...
virtual void get(uint04 index, sint02 &value) const override
Retrieves a sint02 value at the given row index.
virtual void get(uint04 index, StringAllocatingView &value) const override
Retrieves a string value at the given row index as a StringAllocatingView.
virtual void get(uint04 index, uint04 vector_pos, sint01 &value) const override
Retrieves a sint01 value at a specific vector position within a row.
void getVector(uint04 index, Vector< 2, uint04 > &vector) const override
Retrieves a 2D uint04 vector from the given row index.
TableVectorType(const StringView &label)
Constructs a TableVectorType with the given column label.
virtual void get(uint04 index, uint02 &value) const override
Retrieves a uint02 value at the given row index.
virtual void set(uint04 index, fltp04 value) override
Sets a fltp04 value at the given row index.
TableVectorType< t_dims, t_type > * getSelected(const Buffer< bool > &selected_indices) const override
Creates a new column containing only the rows marked true in the selection mask.
virtual void set(uint04 index, uint04 value) override
Sets a uint04 value at the given row index.
virtual void get(uint04, StringView &) const override
Asserts; StringView get is not supported for vector types.
virtual void set(uint04 index, uint01 value) override
Sets a uint01 value at the given row index.
virtual void get(uint04 index, uint04 vector_pos, StringAllocatingView &value) const override
Retrieves a string value at a specific vector position within a row.
virtual TypeInfo type() const override
Returns TypeInfo describing the stored Vector type.
virtual void set(uint04 index, uint04 vector_pos, sint04 value) override
Sets a sint04 value at a specific vector position within a row.
virtual void get(uint04 index, uint04 vector_pos, fltp04 &value) const override
Retrieves a fltp04 value at a specific vector position within a row.
void getVector(uint04 index, Vector< 3, uint04 > &vector) const override
Retrieves a 3D uint04 vector from the given row index.
virtual void get(uint04 index, Bounds< 3, fltp04 > &b) const override
Retrieves a 3D fltp04 bounding box from the given row index.
virtual void set(uint04 index, sint01 value) override
Sets a sint01 value at the given row index.
virtual void set(uint04 index, uint04 vector_pos, fltp08 value) override
Sets a fltp08 value at a specific vector position within a row.
virtual void set(uint04 index, uint04 vector_pos, sint08 value) override
Sets a sint08 value at a specific vector position within a row.
virtual void set(uint04 index, bool value) override
Sets the entire vector at the given row by broadcasting a scalar value. Casts the incoming value to t...
uint08 tableHash() const override
Computes a hash of the entire column data using FNV-like hashing.
virtual void set(uint04 index, const StringView &value) override
Sets a string value at the given row index.
virtual void removeIndices(const Buffer< uint04 > &offset_lookup_list) override
Remaps index references using a lookup table after index removal.
virtual void set(uint04 index, uint04 vector_pos, bool value) override
Sets a single component of the vector at the given row and vector position. Casts the incoming value ...
virtual void get(uint04 index, sint01 &value) const override
Retrieves a sint01 value at the given row index.
virtual void get(uint04 index, uint04 vector_pos, sint08 &value) const override
Retrieves a sint08 value at a specific vector position within a row.
virtual void set(uint04 index, sint08 value) override
Sets a sint08 value at the given row index.
virtual void get(uint04 index, uint04 vector_pos, fltp08 &value) const override
Retrieves a fltp08 value at a specific vector position within a row.
virtual void set(uint04 index, sint04 value) override
Sets a sint04 value at the given row index.
void getVector(uint04 index, Vector< 3, fltp04 > &vector) const override
Retrieves the vector at the given row, converting to the requested vector type.
virtual void set(uint04 index, const Bounds< 3, fltp04 > &b) override
virtual void set(uint04 index, uint04 vector_pos, uint08 value) override
Sets a uint08 value at a specific vector position within a row.
virtual void set(uint04 index, uint04 vector_pos, uint02 value) override
Sets a uint02 value at a specific vector position within a row.
void getVector(uint04 index, Vector< 3, fltp08 > &vector) const override
Retrieves a 3D fltp08 vector from the given row index.
virtual void set(uint04 index, fltp08 value) override
Sets a fltp08 value at the given row index.
virtual void set(uint04 index, uint04 vector_pos, sint01 value) override
Sets a sint01 value at a specific vector position within a row.
virtual void get(uint04 index, RGBColor &value) const override
Gets the vector value at the given row as an RGBColor.
virtual void get(uint04 index, uint08 &value) const override
Retrieves a uint08 value at the given row index.
virtual void get(uint04 index, fltp04 &value) const override
Retrieves a fltp04 value at the given row index.
virtual uint04 getRowSize(uint04) const override
Returns the number of components per row (the vector dimension count).
virtual void get(uint04 index, uint04 vector_pos, bool &value) const override
Gets a single component of the vector at the given row and vector position. Casts the stored componen...
virtual void get(uint04 index, uint04 vector_pos, sint04 &value) const override
Retrieves a sint04 value at a specific vector position within a row.
Represents a timestamp with utilities for manipulation and conversion.
static Time SystemTime()
Retrieves the current system time which is a combination of std::chrono::steady_clock to ensure smoot...
Any text displayed to the user should be defined as a TranslatedString which allows the program to lo...
Stores information about a type, relevant for certain templated functions.
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
UUID appendUUID(const StringView &identifier) const
Appends a string identifier to this UUID, producing a new derived UUID.
A fixed-size array with N dimensions used as the basis for geometric and mathematical types.
constexpr decltype(auto) as() const
Returns the vector as a new time of vector.
The primary namespace for the NDEVR SDK.
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
static constexpr bool IsValid(const Angle< t_type > &value)
Checks whether the given Angle holds a valid value.
uint16_t uint02
-Defines an alias representing a 2 byte, unsigned integer -Can represent exact integer values 0 throu...
constexpr std::enable_if<!ObjectInfo< t_type >::Buffer, TypeInfo >::type GetTypeInfo()
Constructs a TypeInfo for a non-buffer type at compile time using ObjectInfo traits.
uint64_t uint08
-Defines an alias representing an 8 byte, unsigned integer
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
double fltp08
Defines an alias representing an 8 byte floating-point number.
CompressionMode
Forward declaration of the Module struct for module metadata.
@ e_default_compression
Uses a sensible default compression strategy.
int16_t sint02
-Defines an alias representing a 2 byte, signed integer.
int32_t sint04
-Defines an alias representing a 4 byte, signed integer.
constexpr t_to & rcast(t_from &value)
Casts the given value.
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
static constexpr bool IsInvalid(const Angle< t_type > &value)
Checks whether the given Angle holds an invalid value.
@ file
The source file path associated with this object.
@ transform
A 4x4 transform matrix that maps local coordinates into global space.
int8_t sint01
-Defines an alias representing a 1 byte, signed integer.
constexpr HSLColor Constant< HSLColor >::Min
The minimum HSLColor constant with saturation, brightness, and alpha at zero.
int64_t sint08
-Defines an alias representing an 8 byte, signed integer -Can represent exact integer values -9223372...
constexpr t_to cast(const Angle< t_from > &value)
Casts an Angle from one backing type to another.
A container for storing compressed data, typically used for File IO operations.
Extended file table information for reading and writing NDV binary files.
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
void setDefaultValueFrom(TableColumn &, const TableColumn &)
Copies the default value from column b into column a.
void setDefaultValueFrom(TableColumn &a, const TableColumn &b)
Copies the default value from column b into column a.
Helper struct that copies the default value from one TableColumn to another.
void setDefaultValueFrom(TableColumn &a, const TableColumn &b)
Copies the default value from column b into column a.
Information about the object.
Records changes to a table or column noting the bounds of the data adjusted.
@ e_update
An existing row range was modified in place.