From 274235ebea58d620fc1022c204c3a482a2ad0ccd Mon Sep 17 00:00:00 2001 From: johltn Date: Sun, 14 Feb 2021 12:23:43 +0100 Subject: [PATCH] Initialize file --- src/ifcconvert/IfcConvert.cpp | 2 ++ src/serializers/HdfSerializer.cpp | 43 ++++++++++++++++++++++++++++--- src/serializers/HdfSerializer.h | 5 ++++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index fabcc477fe..0368527f13 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -1024,6 +1024,8 @@ int main(int argc, char** argv) { size_t num_created = 0; do { + + IfcGeom::Element *geom_object = context_iterator.get(); if (is_tesselated) diff --git a/src/serializers/HdfSerializer.cpp b/src/serializers/HdfSerializer.cpp index dd999e3134..262beea30d 100644 --- a/src/serializers/HdfSerializer.cpp +++ b/src/serializers/HdfSerializer.cpp @@ -20,7 +20,7 @@ #include "HdfSerializer.h" -#include "H5Cpp.h" + #include "../ifcgeom_schema_agnostic/IfcGeomRenderStyles.h" @@ -29,15 +29,28 @@ #include #include + +const H5std_string FILE_NAME("output_file.hdf5"); + + HdfSerializer::HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings) : GeometrySerializer(settings) , mtl_filename(mtl_filename) , obj_stream(IfcUtil::path::from_utf8(obj_filename).c_str()) , mtl_stream(IfcUtil::path::from_utf8(mtl_filename).c_str()) , vcount_total(1) + + + { obj_stream << std::setprecision(settings.precision); mtl_stream << std::setprecision(settings.precision); + + file = H5::H5File(FILE_NAME, H5F_ACC_TRUNC); + + + + } bool HdfSerializer::ready() { @@ -89,8 +102,32 @@ void HdfSerializer::writeMaterial(const IfcGeom::Material& style) void HdfSerializer::write(const IfcGeom::TriangulationElement* o) { - int a; - H5::H5File ff; + + const H5std_string DATASET_NAME("IntArray"); + const int NX = 5; // dataset dimensions + const int NY = 6; + const int RANK = 2; + + int i, j; + int data[NX][NY]; // buffer for data to write + for (j = 0; j < NX; j++) + { + for (i = 0; i < NY; i++) + data[j][i] = i + j; + } + + + H5::Group group = file.createGroup("/Data"); + + hsize_t dimsf[2]; // dataset dimensions + dimsf[0] = NX; + dimsf[1] = NY; + H5::DataSpace dataspace(RANK, dimsf); + + H5::IntType datatype(H5::PredType::NATIVE_INT); + datatype.setOrder(H5T_ORDER_LE); + H5::DataSet dataset = group.createDataSet(DATASET_NAME, datatype, dataspace); + dataset.write(data, H5::PredType::NATIVE_INT); obj_stream << "g " << object_id(o) << "\n"; diff --git a/src/serializers/HdfSerializer.h b/src/serializers/HdfSerializer.h index 42bba9addd..5051cf07a5 100644 --- a/src/serializers/HdfSerializer.h +++ b/src/serializers/HdfSerializer.h @@ -24,6 +24,8 @@ #include #include +#include "H5Cpp.h" + #include "../serializers/GeometrySerializer.h" // http://people.sc.fsu.edu/~jburkardt/txt/obj_format.txt @@ -34,6 +36,9 @@ private: std::ofstream mtl_stream; unsigned int vcount_total; std::set materials; + H5::H5File file; + + public: HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings); virtual ~HdfSerializer() {}