mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-11 02:02:22 +00:00
More robust conversion to nef in CgalShape
This commit is contained in:
@@ -18,6 +18,21 @@ using ifcopenshell::geometry::NumberEpeck;
|
||||
#define NumberType NumberEpeck
|
||||
#endif
|
||||
|
||||
#ifndef IFOPSH_SIMPLE_KERNEL
|
||||
void ifcopenshell::geometry::CgalShape::to_poly() const {
|
||||
if (!shape_) {
|
||||
shape_.emplace();
|
||||
nef_->convert_to_polyhedron(*shape_);
|
||||
}
|
||||
}
|
||||
|
||||
void ifcopenshell::geometry::CgalShape::to_nef() const {
|
||||
if (!nef_) {
|
||||
nef_ = utils::create_nef_polyhedron(*shape_);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void ifcopenshell::geometry::CgalShape::Triangulate(ifcopenshell::geometry::Settings settings, const ifcopenshell::geometry::taxonomy::matrix4& place, IfcGeom::Representation::Triangulation* t, int surface_style_id) const {
|
||||
// Copy is made because triangulate_faces() obviously does not accept a const argument
|
||||
// ... also becuase of transforming the vertex positions, right?
|
||||
|
||||
@@ -182,18 +182,9 @@ namespace ifcopenshell { namespace geometry {
|
||||
#endif
|
||||
|
||||
#ifndef IFOPSH_SIMPLE_KERNEL
|
||||
void to_poly() const {
|
||||
if (!shape_) {
|
||||
shape_.emplace();
|
||||
nef_->convert_to_polyhedron(*shape_);
|
||||
}
|
||||
}
|
||||
void to_poly() const;
|
||||
|
||||
void to_nef() const {
|
||||
if (!nef_) {
|
||||
nef_.emplace(*shape_);
|
||||
}
|
||||
}
|
||||
void to_nef() const;
|
||||
|
||||
operator const CGAL::Nef_polyhedron_3<Kernel_>& () const { to_nef(); return *nef_; }
|
||||
const CGAL::Nef_polyhedron_3<Kernel_>& nef() const { to_nef(); return *nef_; }
|
||||
|
||||
Reference in New Issue
Block a user