Как и в моем предыдущем вопросе , я работаю над загрузкой одномерного массива с объемными данными .raw-файла.Ответ Джонатана Леффлера оказался полезным, но сейчас я работаю с набором объемных данных разных размеров (X, Y, Z не совпадают).How would the formula be generalized?
pVolume[((x * 256) + y) * 256 + z] // works when all dims are 256
int XDIM=256, YDIM=256, ZDIM=256; // I want this sizes to be arbitrary
const int size = XDIM*YDIM*ZDIM;
bool LoadVolumeFromFile(const char* fileName) {
FILE *pFile = fopen(fileName,"rb");
if(NULL == pFile) {
return false;
}
GLubyte* pVolume=new GLubyte[size]; //<- here pVolume is a 1D byte array
fread(pVolume,sizeof(GLubyte),size,pFile);
fclose(pFile);