mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 06:00:51 +00:00
Further propagate logger so that test succeeds
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user