Further propagate logger so that test succeeds

This commit is contained in:
Thomas Krijnen
2026-08-09 14:00:42 +02:00
parent a353edb9e0
commit 076f46cfeb
13 changed files with 32 additions and 32 deletions
+6 -6
View File
@@ -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);
}
}
+3 -3
View File
@@ -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());
}
}
+2 -2
View File
@@ -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) {
+2 -2
View File
@@ -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) {
+2 -2
View File
@@ -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) {
+2 -2
View File
@@ -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;