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 |