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
+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