mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 14:31:39 +00:00
Initialize file
This commit is contained in:
@@ -1024,6 +1024,8 @@ int main(int argc, char** argv) {
|
|||||||
size_t num_created = 0;
|
size_t num_created = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
|
|
||||||
IfcGeom::Element<real_t> *geom_object = context_iterator.get();
|
IfcGeom::Element<real_t> *geom_object = context_iterator.get();
|
||||||
|
|
||||||
if (is_tesselated)
|
if (is_tesselated)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "HdfSerializer.h"
|
#include "HdfSerializer.h"
|
||||||
|
|
||||||
#include "H5Cpp.h"
|
|
||||||
|
|
||||||
#include "../ifcgeom_schema_agnostic/IfcGeomRenderStyles.h"
|
#include "../ifcgeom_schema_agnostic/IfcGeomRenderStyles.h"
|
||||||
|
|
||||||
@@ -29,15 +29,28 @@
|
|||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
||||||
|
|
||||||
|
const H5std_string FILE_NAME("output_file.hdf5");
|
||||||
|
|
||||||
|
|
||||||
HdfSerializer::HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings)
|
HdfSerializer::HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings)
|
||||||
: GeometrySerializer(settings)
|
: GeometrySerializer(settings)
|
||||||
, mtl_filename(mtl_filename)
|
, mtl_filename(mtl_filename)
|
||||||
, obj_stream(IfcUtil::path::from_utf8(obj_filename).c_str())
|
, obj_stream(IfcUtil::path::from_utf8(obj_filename).c_str())
|
||||||
, mtl_stream(IfcUtil::path::from_utf8(mtl_filename).c_str())
|
, mtl_stream(IfcUtil::path::from_utf8(mtl_filename).c_str())
|
||||||
, vcount_total(1)
|
, vcount_total(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
obj_stream << std::setprecision(settings.precision);
|
obj_stream << std::setprecision(settings.precision);
|
||||||
mtl_stream << std::setprecision(settings.precision);
|
mtl_stream << std::setprecision(settings.precision);
|
||||||
|
|
||||||
|
file = H5::H5File(FILE_NAME, H5F_ACC_TRUNC);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HdfSerializer::ready() {
|
bool HdfSerializer::ready() {
|
||||||
@@ -89,8 +102,32 @@ void HdfSerializer::writeMaterial(const IfcGeom::Material& style)
|
|||||||
void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* o)
|
void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* 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";
|
obj_stream << "g " << object_id(o) << "\n";
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "H5Cpp.h"
|
||||||
|
|
||||||
#include "../serializers/GeometrySerializer.h"
|
#include "../serializers/GeometrySerializer.h"
|
||||||
|
|
||||||
// http://people.sc.fsu.edu/~jburkardt/txt/obj_format.txt
|
// http://people.sc.fsu.edu/~jburkardt/txt/obj_format.txt
|
||||||
@@ -34,6 +36,9 @@ private:
|
|||||||
std::ofstream mtl_stream;
|
std::ofstream mtl_stream;
|
||||||
unsigned int vcount_total;
|
unsigned int vcount_total;
|
||||||
std::set<std::string> materials;
|
std::set<std::string> materials;
|
||||||
|
H5::H5File file;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings);
|
HdfSerializer(const std::string& obj_filename, const std::string& mtl_filename, const SerializerSettings& settings);
|
||||||
virtual ~HdfSerializer() {}
|
virtual ~HdfSerializer() {}
|
||||||
|
|||||||
Reference in New Issue
Block a user