Preliminary attempt at hybrid kernel

This commit is contained in:
Thomas Krijnen
2024-04-29 21:03:33 +02:00
parent 6f540e61ac
commit 405fe4097d
4 changed files with 151 additions and 7 deletions
+7 -4
View File
@@ -19,16 +19,19 @@ namespace ifcopenshell { namespace geometry { namespace kernels {
class IFC_GEOM_API AbstractKernel {
protected:
std::string geometry_library;
std::string geometry_library_;
Settings settings_;
public:
AbstractKernel(const std::string& geometry_library, const Settings& settings)
: geometry_library(geometry_library)
: geometry_library_(geometry_library)
, settings_(settings) {}
bool convert(const taxonomy::ptr, IfcGeom::ConversionResults&);
virtual bool convert(const taxonomy::ptr, IfcGeom::ConversionResults&);
const Settings& settings() const;
const std::string& geometry_library() const {
return geometry_library_;
}
virtual bool convert_impl(const taxonomy::matrix4::ptr, IfcGeom::ConversionResults&) { throw std::runtime_error("Not implemented"); }
virtual bool convert_impl(const taxonomy::point3::ptr, IfcGeom::ConversionResults&) { throw std::runtime_error("Not implemented"); }
@@ -69,7 +72,7 @@ namespace ifcopenshell { namespace geometry { namespace kernels {
};
AbstractKernel* construct(const std::string& geometry_library, const Settings& conv_settings);
AbstractKernel* construct(IfcParse::IfcFile* file, const std::string& geometry_library, Settings& conv_settings);
}
}