downstream: logger: use Logger* instead of Logger& to propagate signature using swig

This commit is contained in:
Andrej730
2026-07-22 16:04:45 +05:00
parent e50bace056
commit d45174066f
20 changed files with 56 additions and 54 deletions
+4 -3
View File
@@ -22,6 +22,7 @@
#include "../ifcgeom/Serializer.h" #include "../ifcgeom/Serializer.h"
#include "../ifcgeom/IfcGeomElement.h" #include "../ifcgeom/IfcGeomElement.h"
#include "../ifcparse/logger.h"
#include <fstream> #include <fstream>
namespace ifcopenshell { namespace ifcopenshell {
@@ -346,8 +347,8 @@ class IFC_GEOM_API GeometrySerializer : public Serializer {
public: public:
enum read_type { READ_BREP, READ_TRIANGULATION }; enum read_type { READ_BREP, READ_TRIANGULATION };
GeometrySerializer(const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) GeometrySerializer(const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr)
: Serializer(logger) : Serializer(logger_or_root(logger))
, geometry_settings_(geometry_settings) , geometry_settings_(geometry_settings)
, settings_(settings) , settings_(settings)
{} {}
@@ -381,7 +382,7 @@ protected:
class IFC_GEOM_API WriteOnlyGeometrySerializer : public GeometrySerializer { class IFC_GEOM_API WriteOnlyGeometrySerializer : public GeometrySerializer {
public: public:
WriteOnlyGeometrySerializer(const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) : GeometrySerializer(geometry_settings, settings, logger) {} WriteOnlyGeometrySerializer(const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr) : GeometrySerializer(geometry_settings, settings, logger) {}
virtual IfcGeom::Element* read(ifcopenshell::file&, const std::string&, const std::string&, read_type = READ_BREP) { virtual IfcGeom::Element* read(ifcopenshell::file&, const std::string&, const std::string&, read_type = READ_BREP) {
throw std::runtime_error("Not supported"); throw std::runtime_error("Not supported");
@@ -1568,23 +1568,17 @@ class type_declaration(declaration):
class uninitialized_tag: ... class uninitialized_tag: ...
def arrange_polygons(settings, polygons): ... def arrange_polygons(settings, polygons, logger=None): ...
def clear_plugin_search_paths() -> None: ... def clear_plugin_search_paths() -> None: ...
def clear_schemas(): ... def clear_schemas(): ...
def construct_iterator(geometry_library, settings, file, num_threads): ... def construct_iterator(geometry_library, settings, file, num_threads, logger=None): ...
def construct_iterator_with_include_exclude(geometry_library, settings, file, elems, include, num_threads): ... def construct_iterator_with_include_exclude(geometry_library, settings, file, elems, include, num_threads, logger=None): ...
def construct_iterator_with_include_exclude_globalid(geometry_library, settings, file, elems, include, num_threads): ... def construct_iterator_with_include_exclude_globalid(geometry_library, settings, file, elems, include, num_threads, logger=None): ...
def construct_iterator_with_include_exclude_id(geometry_library, settings, file, elems, include, num_threads): ... def construct_iterator_with_include_exclude_id(geometry_library, settings, file, elems, include, num_threads, logger=None): ...
def convert_loop_to_function_item(loop): ... def convert_loop_to_function_item(loop): ...
def create_box(*args): ... def create_box(*args): ...
def create_epeck(*args): ... def create_epeck(*args): ...
def create_geometry_serializer( def create_geometry_serializer(*args) -> GeometrySerializer: ...
extension: str,
output_filename: str,
output_temp_filename: str,
geometry_settings: Settings,
serializer_settings: SerializerSettings,
) -> GeometrySerializer: ...
def create_shape(*args): ... def create_shape(*args): ...
def flatten(deep): ... def flatten(deep): ...
def get_feature(x): ... def get_feature(x): ...
@@ -1599,7 +1593,7 @@ def line_segments_to_polygons(s, eps, segments): ...
def map_shape(settings, instance): ... def map_shape(settings, instance): ...
def nary_union(sequence): ... def nary_union(sequence): ...
def new_IfcBaseClass(schema_identifier: str, name: str) -> entity_instance: ... def new_IfcBaseClass(schema_identifier: str, name: str) -> entity_instance: ...
def open(fn: str, readonly: bool = False) -> file: ... def open(fn: str, readonly: bool = False, logger=None) -> file: ...
def parse_ifcxml(filename): ... def parse_ifcxml(filename): ...
def polygons_to_svg(*args): ... def polygons_to_svg(*args): ...
def read(data): ... def read(data): ...
+7
View File
@@ -147,6 +147,13 @@ class IFC_PARSE_API logger {
const std::vector<log_message>& log_messages() const { return log_messages_; } const std::vector<log_message>& log_messages() const { return log_messages_; }
}; };
// SWIG couldn't represent `logger::root()` default value using Python,
// so when translating signature it represents it just as `fn(*args)`, losing information about args.
// Using `logger* = nullptr` instead of `logger& = logger::root()` helps,
// since `nullptr` is convertable Python's `None`.
// `logger_or_root` is just covering the boilerplate for this pattern.
inline logger& logger_or_root(logger* logger) { return logger ? *logger : ::logger::root(); }
#define PERF(x) \ #define PERF(x) \
\ \
::logger::root().message(::logger::LOG_PERF, x); \ ::logger::root().message(::logger::LOG_PERF, x); \
+17 -17
View File
@@ -719,35 +719,35 @@ struct ShapeRTTI : public boost::static_visitor<PyObject*>
); );
} }
IfcGeom::Iterator* construct_iterator(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, int num_threads) {
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, num_threads);
}
// I couldn't get the vector<string> typemap to be applied when %extending Iterator constructor. // I couldn't get the vector<string> typemap to be applied when %extending Iterator constructor.
// anyway it does not matter as SWIG generates C code without actual constructors // anyway it does not matter as SWIG generates C code without actual constructors
IfcGeom::Iterator* construct_iterator(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, int num_threads, logger& logger) { IfcGeom::Iterator* construct_iterator(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, int num_threads, logger* logger = nullptr) {
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, num_threads, logger); ::logger& logger_ = logger_or_root(logger);
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, num_threads, logger_);
} }
IfcGeom::Iterator* construct_iterator_with_include_exclude(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, logger& logger = ::logger::root()) { IfcGeom::Iterator* construct_iterator_with_include_exclude(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, logger* logger = nullptr) {
::logger& logger_ = logger_or_root(logger);
std::set<std::string> elems_set(elems.begin(), elems.end()); std::set<std::string> elems_set(elems.begin(), elems.end());
IfcGeom::entity_filter ef{ include, false, elems_set }; IfcGeom::entity_filter ef{ include, false, elems_set };
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {ef}, num_threads, logger); return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {ef}, num_threads, logger_);
} }
IfcGeom::Iterator* construct_iterator_with_include_exclude_globalid(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, logger& logger = ::logger::root()) { IfcGeom::Iterator* construct_iterator_with_include_exclude_globalid(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<std::string> elems, bool include, int num_threads, logger* logger = nullptr) {
::logger& logger_ = logger_or_root(logger);
std::set<std::string> elems_set(elems.begin(), elems.end()); std::set<std::string> elems_set(elems.begin(), elems.end());
IfcGeom::attribute_filter af; IfcGeom::attribute_filter af;
af.attribute_name = "GlobalId"; af.attribute_name = "GlobalId";
af.populate(elems_set); af.populate(elems_set);
af.include = include; af.include = include;
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger); return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger_);
} }
IfcGeom::Iterator* construct_iterator_with_include_exclude_id(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<int> elems, bool include, int num_threads, logger& logger = ::logger::root()) { IfcGeom::Iterator* construct_iterator_with_include_exclude_id(const std::string& geometry_library, ifcopenshell::geometry::Settings settings, ifcopenshell::file* file, std::vector<int> elems, bool include, int num_threads, logger* logger = nullptr) {
::logger& logger_ = logger_or_root(logger);
std::set<int> elems_set(elems.begin(), elems.end()); std::set<int> elems_set(elems.begin(), elems.end());
IfcGeom::instance_id_filter af(include, false, elems_set); IfcGeom::instance_id_filter af(include, false, elems_set);
return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger); return new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(file, geometry_library, settings), settings, file, {af}, num_threads, logger_);
} }
%} %}
@@ -1083,12 +1083,12 @@ ifcopenshell::geometry::taxonomy::item::ptr try_upcast(PyObject* obj0, swig_type
%} %}
%inline %{ %inline %{
static std::variant<IfcGeom::Element*, IfcGeom::Representation::Representation*, IfcGeom::Transformation*> create_shape(ifcopenshell::geometry::Settings& settings, const express::Base& instance, const express::Base& representation, const char* const geometry_library="opencascade", logger& logger = ::logger::root()) { static std::variant<IfcGeom::Element*, IfcGeom::Representation::Representation*, IfcGeom::Transformation*> create_shape(ifcopenshell::geometry::Settings& settings, const express::Base& instance, const express::Base& representation, const char* const geometry_library="opencascade", logger* logger = nullptr) {
return helper_fn_create_shape(logger, geometry_library, settings, instance, representation); return helper_fn_create_shape(logger_or_root(logger), geometry_library, settings, instance, representation);
} }
// Manual definition of overload without representation argument // Manual definition of overload without representation argument
static std::variant<IfcGeom::Element*, IfcGeom::Representation::Representation*, IfcGeom::Transformation*> create_shape(ifcopenshell::geometry::Settings& settings, const express::Base& instance, const char* const geometry_library="opencascade", logger& logger = ::logger::root()) { static std::variant<IfcGeom::Element*, IfcGeom::Representation::Representation*, IfcGeom::Transformation*> create_shape(ifcopenshell::geometry::Settings& settings, const express::Base& instance, const char* const geometry_library="opencascade", logger* logger = nullptr) {
return create_shape(settings, instance, express::Base(), geometry_library, logger); return create_shape(settings, instance, express::Base(), geometry_library, logger);
} }
%} %}
@@ -1347,9 +1347,9 @@ ifcopenshell::geometry::taxonomy::item::ptr try_upcast(PyObject* obj0, swig_type
} }
} }
std::vector<svgfill::polygon_2> arrange_polygons(svgfill::arrange_polygon_settings settings, const std::vector<svgfill::polygon_2>& polygons, logger& logger = ::logger::root()) { std::vector<svgfill::polygon_2> arrange_polygons(svgfill::arrange_polygon_settings settings, const std::vector<svgfill::polygon_2>& polygons, logger* logger = nullptr) {
std::vector<svgfill::polygon_2> r; std::vector<svgfill::polygon_2> r;
if (svgfill::arrange_polygons(settings, polygons, r, logger)) { if (svgfill::arrange_polygons(settings, polygons, r, logger_or_root(logger))) {
return r; return r;
} else { } else {
throw std::runtime_error("Failed to arrange polygons"); throw std::runtime_error("Failed to arrange polygons");
+2 -2
View File
@@ -1017,10 +1017,10 @@ from .entity_instance import entity_instance_mixin as _entity_instance_mixin_bas
%newobject stream_from_string; %newobject stream_from_string;
%inline %{ %inline %{
ifcopenshell::file* open(const std::string& fn, bool readonly=false, logger& logger=::logger::root()) { ifcopenshell::file* open(const std::string& fn, bool readonly=false, logger* logger=nullptr) {
ifcopenshell::file* f; ifcopenshell::file* f;
Py_BEGIN_ALLOW_THREADS; Py_BEGIN_ALLOW_THREADS;
f = new ifcopenshell::file(fn, ifcopenshell::FT_AUTODETECT, readonly, logger); f = new ifcopenshell::file(fn, ifcopenshell::FT_AUTODETECT, readonly, logger_or_root(logger));
Py_END_ALLOW_THREADS; Py_END_ALLOW_THREADS;
return f; return f;
} }
+1 -1
View File
@@ -219,7 +219,7 @@ private:
std::string unit_name; std::string unit_name;
float unit_magnitude; float unit_magnitude;
public: public:
ColladaSerializer(const std::string& dae_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) ColladaSerializer(const std::string& dae_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, exporter("IfcOpenShell", dae_filename, this, settings.get<ifcopenshell::geometry::settings::FloatingPointDigits>().get() >= 15) , exporter("IfcOpenShell", dae_filename, this, settings.get<ifcopenshell::geometry::settings::FloatingPointDigits>().get() >= 15)
{ {
+1 -1
View File
@@ -53,7 +53,7 @@ static const uint32_t PRIM_TRIANGLE_FAN = 6;
static const uint32_t ELEMENT_ARRAY_BUFFER = 34963; static const uint32_t ELEMENT_ARRAY_BUFFER = 34963;
static const uint32_t ARRAY_BUFFER = 34962; static const uint32_t ARRAY_BUFFER = 34962;
GltfSerializer::GltfSerializer(const std::string& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger) GltfSerializer::GltfSerializer(const std::string& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, filename_(filename) , filename_(filename)
, tmp_filename1_(filename + ".indices.tmp") , tmp_filename1_(filename + ".indices.tmp")
+1 -1
View File
@@ -43,7 +43,7 @@ private:
int writeMaterial(const ifcopenshell::geometry::taxonomy::style::ptr style); int writeMaterial(const ifcopenshell::geometry::taxonomy::style::ptr style);
public: public:
GltfSerializer(const std::string& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()); GltfSerializer(const std::string& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr);
virtual ~GltfSerializer(); virtual ~GltfSerializer();
bool ready(); bool ready();
void writeHeader(); void writeHeader();
+1 -1
View File
@@ -40,7 +40,7 @@ private:
public: public:
/// @note IGESControl_Controller::Init() must be called prior to instantiating IgesSerializer. /// @note IGESControl_Controller::Init() must be called prior to instantiating IgesSerializer.
/// See http://tracker.dev.opencascade.org/view.php?id=23679 for more information. /// See http://tracker.dev.opencascade.org/view.php?id=23679 for more information.
IgesSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) IgesSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr)
: OpenCascadeBasedSerializer(out_filename, geometry_settings, settings, logger) : OpenCascadeBasedSerializer(out_filename, geometry_settings, settings, logger)
{} {}
virtual ~IgesSerializer() {} virtual ~IgesSerializer() {}
+1 -1
View File
@@ -36,7 +36,7 @@ protected:
const std::string out_filename; const std::string out_filename;
const char* getSymbolForUnitMagnitude(float mag); const char* getSymbolForUnitMagnitude(float mag);
public: public:
explicit OpenCascadeBasedSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) explicit OpenCascadeBasedSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, out_filename(out_filename) , out_filename(out_filename)
{} {}
+1 -1
View File
@@ -9,7 +9,7 @@
#include "../ifcparse/logger.h" #include "../ifcparse/logger.h"
RocksDbSerializer::RocksDbSerializer(const std::string& input_filename, const std::string& rocksdb_filename, const std::vector<std::string>& skip_supertypes, ::logger& logger) RocksDbSerializer::RocksDbSerializer(const std::string& input_filename, const std::string& rocksdb_filename, const std::vector<std::string>& skip_supertypes, ::logger* logger)
: input_filename_(input_filename) : input_filename_(input_filename)
, rocksdb_filename_(rocksdb_filename) , rocksdb_filename_(rocksdb_filename)
, skip_supertypes_(skip_supertypes) , skip_supertypes_(skip_supertypes)
+1 -1
View File
@@ -16,7 +16,7 @@ private:
void write_streaming_(); void write_streaming_();
public: public:
RocksDbSerializer(const std::string& input_filename, const std::string& rocksdb_filename, const std::vector<std::string>& skip_supertypes = {}, ::logger& logger = ::logger::root()); RocksDbSerializer(const std::string& input_filename, const std::string& rocksdb_filename, const std::vector<std::string>& skip_supertypes = {}, ::logger* logger = nullptr);
virtual ~RocksDbSerializer() {} virtual ~RocksDbSerializer() {}
+1 -1
View File
@@ -34,7 +34,7 @@ class StepSerializer : public OpenCascadeBasedSerializer
private: private:
STEPControl_Writer writer; STEPControl_Writer writer;
public: public:
explicit StepSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& serializer_settings, ::logger& logger = ::logger::root()) explicit StepSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& serializer_settings, ::logger* logger = nullptr)
: OpenCascadeBasedSerializer(out_filename, geometry_settings, serializer_settings, logger) : OpenCascadeBasedSerializer(out_filename, geometry_settings, serializer_settings, logger)
{} {}
virtual ~StepSerializer() {} virtual ~StepSerializer() {}
+1 -1
View File
@@ -597,7 +597,7 @@ protected:
subtract_before_project subtraction_settings_; subtract_before_project subtraction_settings_;
public: public:
SvgSerializer(const stream_or_filename& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()) SvgSerializer(const stream_or_filename& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, svg_file(out_filename) , svg_file(out_filename)
, xmin(+std::numeric_limits<double>::infinity()) , xmin(+std::numeric_limits<double>::infinity())
+1 -1
View File
@@ -233,7 +233,7 @@ namespace {
} }
} }
TtlWktSerializer::TtlWktSerializer(const stream_or_filename& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger) TtlWktSerializer::TtlWktSerializer(const stream_or_filename& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, filename_(filename) , filename_(filename)
{ {
+1 -1
View File
@@ -32,7 +32,7 @@ class SERIALIZERS_API TtlWktSerializer : public WriteOnlyGeometrySerializer {
private: private:
stream_or_filename filename_; stream_or_filename filename_;
public: public:
TtlWktSerializer(const stream_or_filename& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()); TtlWktSerializer(const stream_or_filename& filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr);
virtual ~TtlWktSerializer() {} virtual ~TtlWktSerializer() {}
bool ready(); bool ready();
void writeHeader(); void writeHeader();
+1 -1
View File
@@ -36,7 +36,7 @@
#include <math.h> #include <math.h>
USDSerializer::USDSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger): USDSerializer::USDSerializer(const std::string& out_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger):
WriteOnlyGeometrySerializer(geometry_settings, settings, logger), WriteOnlyGeometrySerializer(geometry_settings, settings, logger),
filename_(out_filename) filename_(out_filename)
{ {
+1 -1
View File
@@ -86,7 +86,7 @@ private:
std::set<std::string> emitted_names_; std::set<std::string> emitted_names_;
std::map<int, std::string> element_names_; std::map<int, std::string> element_names_;
public: public:
USDSerializer(const std::string&, const ifcopenshell::geometry::Settings&, const ifcopenshell::geometry::SerializerSettings&, ::logger& logger = ::logger::root()); USDSerializer(const std::string&, const ifcopenshell::geometry::Settings&, const ifcopenshell::geometry::SerializerSettings&, ::logger* logger = nullptr);
virtual ~USDSerializer(); virtual ~USDSerializer();
bool ready() { return ready_; } bool ready() { return ready_; }
void writeHeader(); void writeHeader();
+1 -1
View File
@@ -27,7 +27,7 @@
#include <boost/lexical_cast.hpp> #include <boost/lexical_cast.hpp>
#include <iomanip> #include <iomanip>
WaveFrontOBJSerializer::WaveFrontOBJSerializer(const stream_or_filename& obj_filename, const stream_or_filename& mtl_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger) WaveFrontOBJSerializer::WaveFrontOBJSerializer(const stream_or_filename& obj_filename, const stream_or_filename& mtl_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger)
: WriteOnlyGeometrySerializer(geometry_settings, settings, logger) : WriteOnlyGeometrySerializer(geometry_settings, settings, logger)
, obj_stream(obj_filename) , obj_stream(obj_filename)
, mtl_stream(mtl_filename) , mtl_stream(mtl_filename)
+1 -1
View File
@@ -35,7 +35,7 @@ private:
size_t vcount_total, ncount_total; size_t vcount_total, ncount_total;
std::set<std::string> materials; std::set<std::string> materials;
public: public:
WaveFrontOBJSerializer(const stream_or_filename& obj_filename, const stream_or_filename& mtl_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger& logger = ::logger::root()); WaveFrontOBJSerializer(const stream_or_filename& obj_filename, const stream_or_filename& mtl_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings, ::logger* logger = nullptr);
virtual ~WaveFrontOBJSerializer() {} virtual ~WaveFrontOBJSerializer() {}
bool ready(); bool ready();
void writeHeader(); void writeHeader();