Replaced macros, added basic CGAL definitions

This commit is contained in:
Ken Arroyo Ohori
2017-01-27 15:31:22 -06:00
parent 4d12bf7e8d
commit a4264f3143
5 changed files with 30 additions and 23 deletions
+3 -3
View File
@@ -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<std::string>(o->geometry().id());
std::vector<std::string> material_references;
foreach(const IfcGeom::Material& material, mesh.materials()) {
for (const IfcGeom::Material& material: mesh.materials()) {
if (!materials.contains(material)) {
materials.add(material);
}
+4 -4
View File
@@ -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());
+7 -7
View File
@@ -329,7 +329,7 @@ namespace IfcGeom {
void include_entity_names(const std::vector<std::string>& 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<std::string>& 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<IfcSchema::IfcProduct*>(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<IfcSchema::IfcProduct*>(kernel->get_decomposing_entity(current))) != 0) {
if (parent->hasName() && boost::regex_match(parent->Name(), r)) {
+15 -8
View File
@@ -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 <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Nef_polyhedron_3.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef CGAL::Nef_polyhedron_3<Kernel> *cgal_shape_t;
typedef std::vector<Kernel::Point_3> *cgal_face_t;
typedef std::vector<Kernel::Point_3> *cgal_wire_t;
typedef std::vector<Kernel::Point_3> *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
#endif
+1 -1
View File
@@ -38,7 +38,7 @@
#include <boost/dynamic_bitset.hpp>
#include <boost/foreach.hpp>
#define foreach BOOST_FOREACH
//#define foreach BOOST_FOREACH
#define rforeach BOOST_REVERSE_FOREACH
class Argument;