mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-29 08:13:14 +00:00
Pass around non-static logger instances and programmatic access to messages in-memory
This commit is contained in:
@@ -23,7 +23,7 @@ static taxonomy::function_item::ptr convert_loop_to_function_item(taxonomy::loop
|
||||
|
||||
/// @brief Abstract class for evaluating a function_item. This class is specialized for each of the function_item types.
|
||||
struct IFC_GEOM_API fn_evaluator {
|
||||
fn_evaluator(const ifcopenshell::geometry::Settings& settings) : settings_(settings) {
|
||||
fn_evaluator(const ifcopenshell::geometry::Settings& settings, Logger& logger = Logger::Root()) : settings_(settings), logger_(logger) {
|
||||
}
|
||||
fn_evaluator(const fn_evaluator& other) = default;
|
||||
virtual ~fn_evaluator() = default;
|
||||
@@ -36,12 +36,15 @@ struct IFC_GEOM_API fn_evaluator {
|
||||
double length() const { return end() - start(); }
|
||||
|
||||
ifcopenshell::geometry::Settings settings_;
|
||||
|
||||
protected:
|
||||
Logger& logger_;
|
||||
};
|
||||
|
||||
/// @brief utility class to evaluate function_item objects.
|
||||
class IFC_GEOM_API function_item_evaluator {
|
||||
public:
|
||||
function_item_evaluator(const ifcopenshell::geometry::Settings& settings, taxonomy::function_item::const_ptr fn);
|
||||
function_item_evaluator(const ifcopenshell::geometry::Settings& settings, taxonomy::function_item::const_ptr fn, Logger& logger = Logger::Root());
|
||||
function_item_evaluator(const function_item_evaluator& other);
|
||||
~function_item_evaluator();
|
||||
|
||||
@@ -77,6 +80,7 @@ class IFC_GEOM_API function_item_evaluator {
|
||||
fn_evaluator* fn_evaluator_ = nullptr;
|
||||
|
||||
mutable boost::optional<std::vector<double>> eval_points_; // cache evaluation points
|
||||
Logger& logger_;
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user