Program Listing for File manifold_kernel.h¶
↰ Return to documentation for file (src/ifcgeom/kernels/manifold/manifold_kernel.h)
#ifndef MANIFOLD_KERNEL_H
#define MANIFOLD_KERNEL_H
#include <manifold/manifold.h>
#include "../../../ifcgeom/abstract_kernel.h"
#include "../../../ifcgeom/kernels/ifc_geomlibrary_api.h"
#include "../../../ifcgeom/kernels/manifold/manifold_conversion_result.h"
namespace ifcopenshell {
namespace geom {
namespace kernels {
class IFC_GEOMLIBRARY_API manifold_kernel : public abstract_kernel {
public:
manifold_kernel(const ifcopenshell::geom::settings& settings, ifcopenshell::logger& logger = ifcopenshell::logger::root())
: abstract_kernel("manifold", settings, logger) {}
virtual abstract_kernel* clone(ifcopenshell::logger& logger) const {
return new manifold_kernel(settings(), logger);
}
virtual bool supports_openings() const { return true; }
virtual bool supports_boolean_operations() const { return true; }
virtual bool convert_impl(const taxonomy::extrusion::ptr, std::vector<ifcopenshell::geom::conversion_result>&);
virtual bool convert_impl(const taxonomy::shell::ptr, std::vector<ifcopenshell::geom::conversion_result>&);
virtual bool convert_impl(const taxonomy::solid::ptr, std::vector<ifcopenshell::geom::conversion_result>&);
virtual bool convert_impl(const taxonomy::boolean_result::ptr, std::vector<ifcopenshell::geom::conversion_result>&);
double dilation_hack = 0.;
virtual bool convert_openings(const express::base& entity, const std::vector<std::pair<taxonomy::ptr, ifcopenshell::geom::taxonomy::matrix4>>& openings,
const std::vector<ifcopenshell::geom::conversion_result>& entity_shapes, const ifcopenshell::geom::taxonomy::matrix4& entity_trsf, std::vector<ifcopenshell::geom::conversion_result>& cut_shapes);
};
}
}
}
#endif