Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ HDF5:如何将紧密排列的顶点数组读入不同大小的结构?_C++_Hdf5_Data Conversion - Fatal编程技术网

C++ HDF5:如何将紧密排列的顶点数组读入不同大小的结构?

C++ HDF5:如何将紧密排列的顶点数组读入不同大小的结构?,c++,hdf5,data-conversion,C++,Hdf5,Data Conversion,我将以下格式存储在HDF5文件(紧密压缩的顶点数组)中: 我有一个顶点的内存缓冲区,我想把这些数据读入: struct MemVertex { float pos[3]; float normal[3]; float uv[2]; } 例如,如果磁盘上有DiskVertex[1000],内存缓冲区为MemVertex[1000] 如何将数据从DiskVertex读取到MemVertex?我希望避免分配临时缓冲区,将数组读入其中,然后将数据复制到目标中。对此不确定,但hd

我将以下格式存储在HDF5文件(紧密压缩的顶点数组)中:

我有一个顶点的内存缓冲区,我想把这些数据读入:

struct MemVertex
{
    float pos[3];
    float normal[3];
    float uv[2];
}
例如,如果磁盘上有DiskVertex[1000],内存缓冲区为MemVertex[1000]


如何将数据从DiskVertex读取到MemVertex?我希望避免分配临时缓冲区,将数组读入其中,然后将数据复制到目标中。

对此不确定,但hdf5允许您为存储在文件中的数据和存储在内存中的数据指定不同的数据类型,这可用于动态更改/规范化endianess。您应该阅读hdf5手册中有关自定义数据类型的部分谢谢Sebastian!老实说,我觉得这些文档很难理解。请阅读
7.4节。数据空间和数据传输
(我知道,它很旧,但即使对于HDF5库的较新版本也是有效的)。基本上,您需要指定一个内存数据空间(或布局),它“告诉”HDF5在哪里/如何将从磁盘读取的数据传输到内存。FIY:浮点[]成员(可变长度数组)不是标准的C++。来吧,伙计!我的意思是把浮动位置[3]。我会修好的。
struct MemVertex
{
    float pos[3];
    float normal[3];
    float uv[2];
}