From a4264f31433eee1553b4c08f6f6c4f9a8272aae4 Mon Sep 17 00:00:00 2001 From: Ken Arroyo Ohori Date: Fri, 27 Jan 2017 15:31:22 -0600 Subject: [PATCH] Replaced macros, added basic CGAL definitions --- src/ifcconvert/ColladaSerializer.cpp | 6 +++--- src/ifcconvert/XmlSerializer.cpp | 8 ++++---- src/ifcgeom/IfcGeomIterator.h | 14 +++++++------- src/ifcgeom/kernels/cgal/CgalKernel.h | 23 +++++++++++++++-------- src/ifcparse/IfcUtil.h | 2 +- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/ifcconvert/ColladaSerializer.cpp b/src/ifcconvert/ColladaSerializer.cpp index c8272aba64..e9108f6e80 100644 --- a/src/ifcconvert/ColladaSerializer.cpp +++ b/src/ifcconvert/ColladaSerializer.cpp @@ -208,7 +208,7 @@ void ColladaSerializer::ColladaExporter::ColladaScene::add( node.addMatrix(matrix_array); COLLADASW::InstanceGeometry instanceGeometry(mSW); instanceGeometry.setUrl ("#" + geom_name); - foreach(std::string material_name, material_ids) { + for (std::string material_name: material_ids) { /// @todo This is done 6 times in this file, try to perform this once and be done with the material naming for the export. collada_id(material_name); COLLADASW::InstanceMaterial material (material_name, "#" + material_name); @@ -276,7 +276,7 @@ bool ColladaSerializer::ColladaExporter::ColladaMaterials::contains(const IfcGeo void ColladaSerializer::ColladaExporter::ColladaMaterials::write() { effects.close(); - foreach(const IfcGeom::Material& material, materials) { + for (const IfcGeom::Material& material: materials) { std::string material_name = (serializer->settings().get(IfcGeom::IteratorSettings::USE_MATERIAL_NAMES) ? material.original_name() : material.name()); std::string material_name_unescaped = material_name; // workaround double-escaping that would occur in addInstanceEffect() @@ -307,7 +307,7 @@ void ColladaSerializer::ColladaExporter::write(const IfcGeom::TriangulationEleme const std::string representation_id = "representation-" + boost::lexical_cast(o->geometry().id()); std::vector material_references; - foreach(const IfcGeom::Material& material, mesh.materials()) { + for (const IfcGeom::Material& material: mesh.materials()) { if (!materials.contains(material)) { materials.add(material); } diff --git a/src/ifcconvert/XmlSerializer.cpp b/src/ifcconvert/XmlSerializer.cpp index dcb574e0cd..b6cdec851d 100644 --- a/src/ifcconvert/XmlSerializer.cpp +++ b/src/ifcconvert/XmlSerializer.cpp @@ -341,16 +341,16 @@ void XmlSerializer::finalize() { ptree root, header, units, decomposition, properties, types, layers; // Write the SPF header as XML nodes. - foreach(const std::string& s, file->header().file_description().description()) { + for (const std::string& s: file->header().file_description().description()) { header.add_child("file_description.description", ptree(s)); } - foreach(const std::string& s, file->header().file_name().author()) { + for (const std::string& s: file->header().file_name().author()) { header.add_child("file_name.author", ptree(s)); } - foreach(const std::string& s, file->header().file_name().organization()) { + for (const std::string& s: file->header().file_name().organization()) { header.add_child("file_name.organization", ptree(s)); } - foreach(const std::string& s, file->header().file_schema().schema_identifiers()) { + for (const std::string& s: file->header().file_schema().schema_identifiers()) { header.add_child("file_schema.schema_identifiers", ptree(s)); } header.put("file_description.implementation_level", file->header().file_description().implementation_level()); diff --git a/src/ifcgeom/IfcGeomIterator.h b/src/ifcgeom/IfcGeomIterator.h index 2ada29a2cf..2d2c8fe312 100644 --- a/src/ifcgeom/IfcGeomIterator.h +++ b/src/ifcgeom/IfcGeomIterator.h @@ -329,7 +329,7 @@ namespace IfcGeom { void include_entity_names(const std::vector& names) { names_to_include_or_exclude.clear(); - foreach(const std::string &name, names) + for (const std::string &name: names) names_to_include_or_exclude.insert(wildcard_string_to_regex(name)); include_names_in_processing_ = true; } @@ -338,7 +338,7 @@ namespace IfcGeom { void exclude_entity_names(const std::vector& names) { names_to_include_or_exclude.clear(); - foreach(const std::string &name, names) + for (const std::string &name: names) names_to_include_or_exclude.insert(wildcard_string_to_regex(name)); include_names_in_processing_ = false; } @@ -347,7 +347,7 @@ namespace IfcGeom { { // Escape all non-"*?" regex special chars std::string special_chars = "\\^.$|()[]+/"; - foreach(char c, special_chars) { + for (char c: special_chars) { std::string char_str(1, c); boost::replace_all(str, char_str, "\\" + char_str); } @@ -540,7 +540,7 @@ namespace IfcGeom { IfcSchema::IfcProduct* prod = *jt; bool type_found = false; // The set is iterated over to able to filter on subtypes. - foreach(IfcSchema::Type::Enum type, entities_to_include_or_exclude) { + for (IfcSchema::Type::Enum type: entities_to_include_or_exclude) { if (prod->is(type)) { type_found = true; break; @@ -548,7 +548,7 @@ namespace IfcGeom { } if (!type_found && traverse) { - foreach(IfcSchema::Type::Enum type, entities_to_include_or_exclude) { + for (IfcSchema::Type::Enum type: entities_to_include_or_exclude) { IfcSchema::IfcProduct* parent, * current = prod; while ((parent = static_cast(kernel->get_decomposing_entity(current))) != 0) { if (parent->is(type)) { @@ -564,7 +564,7 @@ namespace IfcGeom { } bool name_found = false; - foreach(const boost::regex& r, names_to_include_or_exclude) { + for (const boost::regex& r: names_to_include_or_exclude) { if (prod->hasName() && boost::regex_match(prod->Name(), r)) { name_found = true; break; @@ -572,7 +572,7 @@ namespace IfcGeom { } if (!name_found && traverse) { - foreach(const boost::regex& r, names_to_include_or_exclude) { + for (const boost::regex& r: names_to_include_or_exclude) { IfcSchema::IfcProduct* parent, *current = prod; while ((parent = static_cast(kernel->get_decomposing_entity(current))) != 0) { if (parent->hasName() && boost::regex_match(parent->Name(), r)) { diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.h b/src/ifcgeom/kernels/cgal/CgalKernel.h index a3e7167624..5a9fe325a8 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.h +++ b/src/ifcgeom/kernels/cgal/CgalKernel.h @@ -1,4 +1,4 @@ -/******************************************************************************** +/******************************************************************************** * * * This file is part of IfcOpenShell. * * * @@ -37,12 +37,19 @@ if ( it != cache.T.end() ) { e = it->second; return true; } #include "../../../ifcgeom/IfcGeom.h" -typedef void* cgal_shape_t; -typedef void* cgal_face_t; -typedef void* cgal_wire_t; -typedef void* cgal_curve_t; -typedef void* cgal_placement_t; -typedef void* cgal_point_t; +#undef Handle + +#include +#include + +typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; + +typedef CGAL::Nef_polyhedron_3 *cgal_shape_t; +typedef std::vector *cgal_face_t; +typedef std::vector *cgal_wire_t; +typedef std::vector *cgal_curve_t; +typedef Kernel::Aff_transformation_3 *cgal_placement_t; +typedef Kernel::Point_3 *cgal_point_t; namespace IfcGeom { @@ -90,4 +97,4 @@ namespace IfcGeom { } -#endif \ No newline at end of file +#endif diff --git a/src/ifcparse/IfcUtil.h b/src/ifcparse/IfcUtil.h index 13eeb4a134..8b5259b111 100644 --- a/src/ifcparse/IfcUtil.h +++ b/src/ifcparse/IfcUtil.h @@ -38,7 +38,7 @@ #include #include -#define foreach BOOST_FOREACH +//#define foreach BOOST_FOREACH #define rforeach BOOST_REVERSE_FOREACH class Argument;