mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-11 02:02:22 +00:00
Further propagate logger so that test succeeds
This commit is contained in:
@@ -843,7 +843,7 @@ int main(int argc, char** argv) {
|
||||
if (is_tesselated && (center_model || center_model_geometry)) {
|
||||
std::vector<double> offset(3);
|
||||
|
||||
ifcopenshell::geom::iterator tmp_context_iterator(ifcopenshell::geom::kernels::construct(ifc_file, geometry_kernel, settings), settings, ifc_file, filter_funcs, num_threads, logger);
|
||||
ifcopenshell::geom::iterator tmp_context_iterator(ifcopenshell::geom::kernels::construct(ifc_file, geometry_kernel, settings, logger), settings, ifc_file, filter_funcs, num_threads, logger);
|
||||
|
||||
time_t bounds_start, bounds_end;
|
||||
time(&bounds_start);
|
||||
@@ -888,7 +888,7 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
|
||||
std::unique_ptr<ifcopenshell::geom::iterator> context_iterator;
|
||||
context_iterator.reset(new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(ifc_file, geometry_kernel, settings), settings, ifc_file, filter_funcs, num_threads, logger));
|
||||
context_iterator.reset(new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(ifc_file, geometry_kernel, settings, logger), settings, ifc_file, filter_funcs, num_threads, logger));
|
||||
|
||||
logger.message(ifcopenshell::logger::LOG_PERF, "file geometry conversion");
|
||||
|
||||
@@ -1370,7 +1370,7 @@ void fix_quantities(ifcopenshell::file& f, bool no_progress, bool quiet, bool st
|
||||
settings.get<ifcopenshell::geom::settings::ConvertBackUnits>().value = true;
|
||||
settings.get<ifcopenshell::geom::settings::IteratorOutput>().value = ifcopenshell::geom::settings::NATIVE;
|
||||
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "opencascade", settings), settings, &f, {}, 1, logger);
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "opencascade", settings, logger), settings, &f, {}, 1, logger);
|
||||
|
||||
if (!context_iterator.initialize()) {
|
||||
return;
|
||||
|
||||
@@ -54,7 +54,7 @@ void fix_spaceboundaries(ifcopenshell::file& f, bool no_progress, bool quiet, bo
|
||||
settings.get<ifcopenshell::geom::settings::IteratorOutput>().value = ifcopenshell::geom::settings::NATIVE;
|
||||
settings.get<ifcopenshell::geom::settings::DisableOpeningSubtractions>().value = true;
|
||||
|
||||
ifcopenshell::geom::converter c(ifcopenshell::geom::kernels::construct(&f2, "cgal", settings), &f2, settings, logger);
|
||||
ifcopenshell::geom::converter c(ifcopenshell::geom::kernels::construct(&f2, "cgal", settings, logger), &f2, settings, logger);
|
||||
|
||||
std::map<std::set<std::string>, std::vector<Kernel_::Point_3>> elem_to_space_boundary_coords;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ void fix_storeycontainment(ifcopenshell::file& f, bool no_progress, bool quiet,
|
||||
ifcopenshell::geom::entity_filter(false, false, {"IfcOpeningElement", "IfcSpace"})
|
||||
};
|
||||
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "cgal", settings), settings, &f, no_openings_and_spaces, 1, logger);
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "cgal", settings, logger), settings, &f, no_openings_and_spaces, 1, logger);
|
||||
|
||||
auto get_elevation = [](const ifcopenshell::IfcBaseClass* a) {
|
||||
return ((const ifcopenshell::IfcBaseEntity*)a)->get_value<double>("Elevation", 0.);
|
||||
|
||||
@@ -23,7 +23,7 @@ void fix_wallconnectivity(ifcopenshell::file& f, bool no_progress, bool quiet, b
|
||||
|
||||
settings.get<ifcopenshell::geom::settings::OutputDimensionality>().value = ifcopenshell::geom::settings::CURVES;
|
||||
|
||||
ifcopenshell::geom::converter c(ifcopenshell::geom::kernels::construct(&f, "cgal", settings), &f, settings, logger);
|
||||
ifcopenshell::geom::converter c(ifcopenshell::geom::kernels::construct(&f, "cgal", settings, logger), &f, settings, logger);
|
||||
|
||||
auto rels = f.instances_by_type("IfcRelConnectsPathElements");
|
||||
std::map<std::set<const ifcopenshell::IfcBaseClass*>, const ifcopenshell::IfcBaseClass*> rel_by_elem;
|
||||
|
||||
@@ -460,7 +460,7 @@ struct intersection_validator {
|
||||
ifcopenshell::geom::entity_filter(true, false, entities)
|
||||
};
|
||||
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "cgal", settings), settings, &f, spaces_and_walls, 1, logger);
|
||||
ifcopenshell::geom::iterator context_iterator(ifcopenshell::geom::kernels::construct(&f, "cgal", settings, logger), settings, &f, spaces_and_walls, 1, logger);
|
||||
|
||||
if (!context_iterator.initialize()) {
|
||||
return;
|
||||
|
||||
@@ -124,12 +124,12 @@ bool ifcopenshell::geom::kernels::kernel_registry::has(const std::string& backen
|
||||
return entries_.find(kernel_key(backend_id)) != entries_.end();
|
||||
}
|
||||
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::kernel_registry::create(const std::string& backend_id, ifcopenshell::file* file, ifcopenshell::geom::settings& settings) const {
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::kernel_registry::create(const std::string& backend_id, ifcopenshell::file* file, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) const {
|
||||
const auto iter = entries_.find(kernel_key(backend_id));
|
||||
if (iter == entries_.end()) {
|
||||
throw ifcopenshell::exception("No geometry kernel registered for " + backend_id);
|
||||
}
|
||||
return std::unique_ptr<abstract_kernel>(iter->second.create_(file, settings));
|
||||
return std::unique_ptr<abstract_kernel>(iter->second.create_(file, settings, logger));
|
||||
}
|
||||
|
||||
std::vector<ifcopenshell::geom::kernels::kernel_info> ifcopenshell::geom::kernels::kernel_registry::kernels() const {
|
||||
@@ -145,7 +145,7 @@ ifcopenshell::geom::kernels::kernel_registry& ifcopenshell::geom::kernels::kerne
|
||||
return registry;
|
||||
}
|
||||
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::construct(ifcopenshell::file* file, const std::string& geometry_library, ifcopenshell::geom::settings& settings) {
|
||||
std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom::kernels::construct(ifcopenshell::file* file, const std::string& geometry_library, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) {
|
||||
auto geometry_library_lower = boost::to_lower_copy(geometry_library);
|
||||
auto& registry = kernel_registry_instance();
|
||||
|
||||
@@ -153,7 +153,7 @@ std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom
|
||||
load_kernel_plugin(registry, geometry_library_lower);
|
||||
}
|
||||
if (registry.has(geometry_library_lower)) {
|
||||
return registry.create(geometry_library_lower, file, settings);
|
||||
return registry.create(geometry_library_lower, file, settings, logger);
|
||||
}
|
||||
|
||||
if (geometry_library_lower.rfind("hybrid-", 0) == 0) {
|
||||
@@ -173,7 +173,7 @@ std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom
|
||||
throw ifcopenshell::exception("Invalid hybrid kernel; no match for prefix of " + geometry_library_lower);
|
||||
}
|
||||
|
||||
kernels.push_back(registry.create(matched_backend_id, file, settings));
|
||||
kernels.push_back(registry.create(matched_backend_id, file, settings, logger));
|
||||
geometry_library_lower = geometry_library_lower.substr(matched_backend_id.size());
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ std::unique_ptr<ifcopenshell::geom::kernels::abstract_kernel> ifcopenshell::geom
|
||||
}
|
||||
|
||||
if (!kernels.empty()) {
|
||||
return std::make_unique<hybrid_kernel>(geometry_library, file, settings, std::move(kernels));
|
||||
return std::make_unique<hybrid_kernel>(geometry_library, file, settings, std::move(kernels), logger);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,11 +42,11 @@ namespace ifcopenshell {
|
||||
|
||||
class IFC_GEOM_API kernel_registry {
|
||||
public:
|
||||
typedef std::function<abstract_kernel*(ifcopenshell::file*, ifcopenshell::geom::settings&)> create_fn;
|
||||
typedef std::function<abstract_kernel*(ifcopenshell::file*, ifcopenshell::geom::settings&, ifcopenshell::logger&)> create_fn;
|
||||
|
||||
void bind(const kernel_info& info, create_fn create, const ifcopenshell::plugin::module& module = ifcopenshell::plugin::module());
|
||||
bool has(const std::string& backend_id) const;
|
||||
std::unique_ptr<abstract_kernel> create(const std::string& backend_id, ifcopenshell::file* file, ifcopenshell::geom::settings& settings) const;
|
||||
std::unique_ptr<abstract_kernel> create(const std::string& backend_id, ifcopenshell::file* file, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) const;
|
||||
std::vector<kernel_info> kernels() const;
|
||||
|
||||
private:
|
||||
@@ -60,7 +60,7 @@ namespace ifcopenshell {
|
||||
};
|
||||
|
||||
IFC_GEOM_API kernel_registry& kernel_registry_instance();
|
||||
IFC_GEOM_API std::unique_ptr<abstract_kernel> construct(ifcopenshell::file* file, const std::string& geometry_library, ifcopenshell::geom::settings& settings);
|
||||
IFC_GEOM_API std::unique_ptr<abstract_kernel> construct(ifcopenshell::file* file, const std::string& geometry_library, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger = ifcopenshell::logger::root());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ namespace ifcopenshell {
|
||||
return kernel_plugin_metadata(plugin_name);
|
||||
}
|
||||
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings) {
|
||||
return new kernel_type(settings);
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) {
|
||||
return new kernel_type(settings, logger);
|
||||
}
|
||||
|
||||
void register_plugin(kernel_registry& registry, const plugin::module& module) {
|
||||
|
||||
@@ -35,8 +35,8 @@ namespace ifcopenshell {
|
||||
return kernel_plugin_metadata("manifold");
|
||||
}
|
||||
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings) {
|
||||
return new manifold_kernel(settings);
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) {
|
||||
return new manifold_kernel(settings, logger);
|
||||
}
|
||||
|
||||
void register_plugin(kernel_registry& registry, const plugin::module& module) {
|
||||
|
||||
@@ -35,8 +35,8 @@ namespace ifcopenshell {
|
||||
return kernel_plugin_metadata("opencascade");
|
||||
}
|
||||
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings) {
|
||||
return new ifcopenshell::geom::open_cascade_kernel(settings);
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) {
|
||||
return new ifcopenshell::geom::open_cascade_kernel(settings, logger);
|
||||
}
|
||||
|
||||
void register_plugin(kernel_registry& registry, const plugin::module& module) {
|
||||
|
||||
@@ -35,8 +35,8 @@ namespace ifcopenshell {
|
||||
return kernel_plugin_metadata("passthrough");
|
||||
}
|
||||
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings) {
|
||||
return new passthrough_kernel(settings);
|
||||
abstract_kernel* create_kernel(ifcopenshell::file*, ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger) {
|
||||
return new passthrough_kernel(settings, logger);
|
||||
}
|
||||
|
||||
void register_plugin(kernel_registry& registry, const plugin::module& module) {
|
||||
|
||||
@@ -63,7 +63,7 @@ std::size_t count_geo403_for_wall(hierarchy_helper<IfcSchema>& file, const IfcSc
|
||||
ifcopenshell::logger log;
|
||||
log.output_format(ifcopenshell::logger::FMT_INMEMORY);
|
||||
ifcopenshell::geom::converter converter(
|
||||
ifcopenshell::geom::kernels::construct(&file, "opencascade", settings), &file, settings, log);
|
||||
ifcopenshell::geom::kernels::construct(&file, "opencascade", settings, log), &file, settings, log);
|
||||
delete converter.create_brep_for_representation_and_product(wall.Representation().Representations().back(), wall);
|
||||
return log.count("GEO403");
|
||||
}
|
||||
@@ -94,7 +94,7 @@ IfcSchema::IfcRepresentation select_representation(
|
||||
ifcopenshell::logger log;
|
||||
log.output_format(ifcopenshell::logger::FMT_INMEMORY);
|
||||
ifcopenshell::geom::converter converter(
|
||||
ifcopenshell::geom::kernels::construct(&file, "passthrough", settings), &file, settings, log);
|
||||
ifcopenshell::geom::kernels::construct(&file, "passthrough", settings, log), &file, settings, log);
|
||||
|
||||
auto selected = converter.mapping()->representation_of(wall).as<IfcSchema::IfcRepresentation>();
|
||||
REQUIRE(selected);
|
||||
@@ -126,7 +126,7 @@ std::vector<ifcopenshell::geom::geometry_conversion_task> representation_tasks(
|
||||
ifcopenshell::logger log;
|
||||
log.output_format(ifcopenshell::logger::FMT_INMEMORY);
|
||||
ifcopenshell::geom::converter converter(
|
||||
ifcopenshell::geom::kernels::construct(&file, "passthrough", settings), &file, settings, log);
|
||||
ifcopenshell::geom::kernels::construct(&file, "passthrough", settings, log), &file, settings, log);
|
||||
|
||||
std::vector<ifcopenshell::geom::geometry_conversion_task> tasks;
|
||||
std::vector<ifcopenshell::geom::filter_function> filters;
|
||||
|
||||
@@ -761,14 +761,14 @@ struct shape_rtti : public boost::static_visitor<PyObject*>
|
||||
// anyway it does not matter as SWIG generates C code without actual constructors
|
||||
ifcopenshell::geom::iterator* construct_iterator(const std::string& geometry_library, ifcopenshell::geom::settings settings, ifcopenshell::file* file, int num_threads, ifcopenshell::logger* logger = nullptr) {
|
||||
ifcopenshell::logger& logger_ = ifcopenshell::logger_or_root(logger);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings), settings, file, num_threads, logger_);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings, logger_), settings, file, num_threads, logger_);
|
||||
}
|
||||
|
||||
ifcopenshell::geom::iterator* construct_iterator_with_include_exclude(const std::string& geometry_library, ifcopenshell::geom::settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, ifcopenshell::logger* logger = nullptr) {
|
||||
ifcopenshell::logger& logger_ = ifcopenshell::logger_or_root(logger);
|
||||
std::set<std::string> elems_set(elems.begin(), elems.end());
|
||||
ifcopenshell::geom::entity_filter ef{ include, false, elems_set };
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings), settings, file, {ef}, num_threads, logger_);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings, logger_), settings, file, {ef}, num_threads, logger_);
|
||||
}
|
||||
|
||||
ifcopenshell::geom::iterator* construct_iterator_with_include_exclude_globalid(const std::string& geometry_library, ifcopenshell::geom::settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, ifcopenshell::logger* logger = nullptr) {
|
||||
@@ -778,14 +778,14 @@ struct shape_rtti : public boost::static_visitor<PyObject*>
|
||||
af.attribute_name = "GlobalId";
|
||||
af.populate(elems_set);
|
||||
af.include = include;
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger_);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings, logger_), settings, file, {af}, num_threads, logger_);
|
||||
}
|
||||
|
||||
ifcopenshell::geom::iterator* construct_iterator_with_include_exclude_id(const std::string& geometry_library, ifcopenshell::geom::settings settings, ifcopenshell::file* file, std::vector<int> elems, bool include, int num_threads, ifcopenshell::logger* logger = nullptr) {
|
||||
ifcopenshell::logger& logger_ = ifcopenshell::logger_or_root(logger);
|
||||
std::set<int> elems_set(elems.begin(), elems.end());
|
||||
ifcopenshell::geom::instance_id_filter af(include, false, elems_set);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger_);
|
||||
return new ifcopenshell::geom::iterator(ifcopenshell::geom::kernels::construct(file, geometry_library, settings, logger_), settings, file, {af}, num_threads, logger_);
|
||||
}
|
||||
%}
|
||||
|
||||
@@ -993,7 +993,7 @@ struct shape_rtti : public boost::static_visitor<PyObject*>
|
||||
static std::variant<ifcopenshell::geom::element*, ifcopenshell::geom::representation*, ifcopenshell::geom::transformation*> helper_fn_create_shape(ifcopenshell::logger& logger, const std::string& geometry_library, ifcopenshell::geom::settings& settings, const express::base& instance, const express::base& representation = express::base()) {
|
||||
ifcopenshell::file* file = instance.file();
|
||||
|
||||
ifcopenshell::geom::converter kernel(ifcopenshell::geom::kernels::construct(file, geometry_library, settings), file, settings, logger);
|
||||
ifcopenshell::geom::converter kernel(ifcopenshell::geom::kernels::construct(file, geometry_library, settings, logger), file, settings, logger);
|
||||
if (instance.declaration().is("IfcProduct")) {
|
||||
if (representation && !representation.declaration().is("IfcRepresentation")) {
|
||||
throw ifcopenshell::exception("Supplied representation not of type IfcRepresentation");
|
||||
|
||||
Reference in New Issue
Block a user