diff --git a/src/ifcgeom/mapping/IfcCurveSegment.cpp b/src/ifcgeom/mapping/IfcCurveSegment.cpp index 9f15745352..e87c69d6bc 100644 --- a/src/ifcgeom/mapping/IfcCurveSegment.cpp +++ b/src/ifcgeom/mapping/IfcCurveSegment.cpp @@ -275,10 +275,10 @@ class cant_adjuster : public GEOMETRY_ADJUSTER { double cant = parent_curve_point.col(3)(1); auto tilt = -atan2(fabs(h), cant); - // Create a transformation matrix + // Create a transformation matrix for twist about the RefDirection (x-axis) Eigen::Matrix4d m = Eigen::Matrix4d::Identity(); - m.col(2)(1) = cos(tilt); - m.col(2)(2) = sin(tilt); + m.col(2)(2) = cos(tilt); + m.col(2)(3) = sin(tilt); // apply cant tilt to the parent curve point Eigen::Matrix4d p = m * parent_curve_point; diff --git a/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp b/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp index 6f349d7675..49997f355f 100644 --- a/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp +++ b/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp @@ -71,6 +71,7 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcFixedReferenceSweptAreaSolid ss << m4; auto s = ss.str(); std::wcout << s.c_str() << std::endl; + std::wcout << "determinant: " << m4.determinant() << std::endl; Eigen::Matrix4d m4b = Eigen::Matrix4d::Identity(); bool is_directrix_derived = false;