본문으로 바로가기

h5pp

category 블로그 (Blog)/개발로그 (Devlogs) 2024. 3. 8. 11:22

hdf5 포맷 r/w 용으로 나온 표준 libhdf5 를 사용하면 코딩량이 많을수밖에 없다..
찾아보니 h5pp 라는 라이브러리가 있길래 테스트해봄.

https://github.com/DavidAce/h5pp

코드도 짦아지고.. 백터도 지원하고 좋은것 같음.

#include <h5pp/h5pp.h>
 
typedef struct {
    unsigned int id;
    float x, y, z;
} T_NODE;
 
int main(int argc, char *argv[])
{
    //h5pp::File file("test.h5", h5pp::FileAccess::REPLACE, 0);
    h5pp::File file("test.h5", h5pp::FileAccess::REPLACE);
 
    h5pp::hid::h5t T = H5Tcreate(H5T_COMPOUND, sizeof(T_NODE));
    H5Tinsert(T, "id", HOFFSET(T_NODE, id), H5T_NATIVE_INT);
    H5Tinsert(T, "x", HOFFSET(T_NODE, x), H5T_NATIVE_FLOAT);
    H5Tinsert(T, "y", HOFFSET(T_NODE, y), H5T_NATIVE_FLOAT);
    H5Tinsert(T, "z", HOFFSET(T_NODE, z), H5T_NATIVE_FLOAT);
 
    std::vector<T_NODE> nodes;
    T_NODE node;
    node.id = 1;
    node.x = 1.0;
    node.y = 1.0;
    node.z = 1.0;
    nodes.push_back(node);
    nodes.push_back(node);
    nodes.push_back(node);
    nodes.push_back(node);
    nodes.push_back(node);
    file.writeDataset(nodes, "/nodes", T);
 
    std::vector<std::string> lines;
    lines.push_back("this is a vector");
    lines.push_back("of strings");
    lines.push_back("of varying lengths");
    file.writeDataset(lines, "/lines");
 
    return 0;
}

'블로그 (Blog) > 개발로그 (Devlogs)' 카테고리의 다른 글

Solid 섹션 컷 구현  (0) 2024.03.08
Triangle Remeshing  (0) 2024.03.08
gcc 병렬 컴파일  (0) 2024.03.08
날씨 정보 RSS  (0) 2024.03.08
optimesh  (0) 2024.03.08