Add faces existence condition and keep cleaning

This commit is contained in:
johltn
2021-02-18 10:12:29 +01:00
parent bf24f46806
commit 0882bfaf3e
2 changed files with 8 additions and 42 deletions
+3 -37
View File
@@ -30,8 +30,6 @@
#include <iomanip> #include <iomanip>
//const H5std_string FILE_NAME("output_file.h5");
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)
@@ -56,35 +54,9 @@ void HdfSerializer::writeHeader() {
} }
//void HdfSerializer::writeMaterial(const IfcGeom::Material& style)
//{
// std::string material_name = (settings().get(SerializerSettings::USE_MATERIAL_NAMES)
// ? style.original_name() : style.name());
// IfcUtil::sanitate_material_name(material_name);
// mtl_stream << "newmtl " << material_name << "\n";
//
// if (style.hasDiffuse()) {
// const double* diffuse = style.diffuse();
// mtl_stream << "Kd " << diffuse[0] << " " << diffuse[1] << " " << diffuse[2] << "\n";
// }
// if (style.hasSpecular()) {
// const double* specular = style.specular();
// mtl_stream << "Ks " << specular[0] << " " << specular[1] << " " << specular[2] << "\n";
// }
// if (style.hasSpecularity()) {
// mtl_stream << "Ns " << style.specularity() << "\n";
// }
// if (style.hasTransparency()) {
// const double transparency = 1.0 - style.transparency();
// if (transparency < 1) {
// mtl_stream << "d " << transparency << "\n";
// }
// }
//}
//
void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* o){ void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* o) {
std::string guid = o->guid(); std::string guid = o->guid();
//Logger::Status(guid); //Logger::Status(guid);
@@ -103,13 +75,7 @@ void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* o){
const int fcount = (int)mesh.faces().size() / 3; const int fcount = (int)mesh.faces().size() / 3;
if (std::find(guids.begin(), guids.end(), guid) != guids.end()) if (fcount > 0) {
{
elementGroup = file.openGroup(guid);
meshGroup = elementGroup.openGroup("Triangle Mesh");
positionsDataset = meshGroup.openDataSet("Positions");
} else {
guids.insert(guid); guids.insert(guid);
elementGroup = file.createGroup(guid); elementGroup = file.createGroup(guid);
@@ -217,6 +183,6 @@ void HdfSerializer::write(const IfcGeom::TriangulationElement<real_t>* o){
double_data_container.clear(); double_data_container.clear();
}
}
} }