2023-11-02 09:04:34 +01:00
|
|
|
#include "ConversionResult.h"
|
|
|
|
|
#include "IfcGeomRepresentation.h"
|
|
|
|
|
|
2023-12-13 16:43:33 +01:00
|
|
|
#include <iomanip>
|
|
|
|
|
|
2023-11-15 10:32:20 +01:00
|
|
|
IfcGeom::Representation::Triangulation * IfcGeom::ConversionResultShape::Triangulate(const ifcopenshell::geometry::Settings& settings) const
|
2023-11-02 09:04:34 +01:00
|
|
|
{
|
|
|
|
|
auto t = IfcGeom::Representation::Triangulation::empty(settings);
|
|
|
|
|
static ifcopenshell::geometry::taxonomy::matrix4 iden;
|
2023-06-19 13:47:45 +02:00
|
|
|
Triangulate(settings, iden, t, -1, -1);
|
2023-11-02 09:04:34 +01:00
|
|
|
return t;
|
|
|
|
|
}
|
2023-12-05 21:11:36 +01:00
|
|
|
|
|
|
|
|
using namespace ifcopenshell::geometry::taxonomy;
|
|
|
|
|
|
|
|
|
|
void IfcGeom::ConversionResult::append(ifcopenshell::geometry::taxonomy::matrix4::ptr trsf) {
|
|
|
|
|
placement_ = make<matrix4>(placement_->ccomponents() * trsf->ccomponents());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void IfcGeom::ConversionResult::prepend(ifcopenshell::geometry::taxonomy::matrix4::ptr trsf) {
|
|
|
|
|
placement_ = make<matrix4>(trsf->ccomponents() * placement_->ccomponents());
|
|
|
|
|
}
|
2023-12-13 16:43:33 +01:00
|
|
|
|
|
|
|
|
std::string IfcGeom::NumberNativeDouble::to_string() const {
|
|
|
|
|
std::stringstream ss;
|
|
|
|
|
ss << std::setprecision(std::numeric_limits<double>::digits10 + 1) << value_;
|
|
|
|
|
return ss.str();
|
|
|
|
|
}
|