Поскольку мой ответ также положительный, я последую за ответом К-балла с минимальным примером того, как использовать плоский массив для хранения набора многомерных данных:
Сохранение указателя GLfloat иразмеры в качестве членов вашего класса:
GLfloat *tgrid;
int nx, ny, nz;
В функции инициализации:
void CreateGrid(int x, int y, int z)
{
nx = x;
ny = y;
nz = z;
tgrid = new GLfloat[nx*ny*nz];
}
Для правильного чтения и записи вам необходимо будет последовательно определить свою схему индексации:
GLfloat GetValueAt(int x, int y, int z)
{
return tgrid[ (nx*ny*z) + (nx*y) + x ];
}
void SetValueAt(int x, int y, int z, GLfloat value)
{
tgrid[ (nx*ny*z) + (nx*y) + x ] = value;
}
Удаление также выполняется напрямую, поскольку tgrid - это только плоский массив.