diff --git a/freetype263/opennurbs_public_freetype.xcodeproj/project.pbxproj b/freetype263/opennurbs_public_freetype.xcodeproj/project.pbxproj index cc0f9dcc..37ce5cf1 100644 --- a/freetype263/opennurbs_public_freetype.xcodeproj/project.pbxproj +++ b/freetype263/opennurbs_public_freetype.xcodeproj/project.pbxproj @@ -238,7 +238,7 @@ 1DB028251ED6433600FA9144 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1240; + LastUpgradeCheck = 2600; ORGANIZATIONNAME = "OpenNURBS 3dm File IO Toolkit"; TargetAttributes = { 1DB0282C1ED6433600FA9144 = { diff --git a/opennurbs_beam.cpp b/opennurbs_beam.cpp index 723630ce..5284fb30 100644 --- a/opennurbs_beam.cpp +++ b/opennurbs_beam.cpp @@ -1717,8 +1717,11 @@ bool ON_Extrusion::GetTightBoundingBox(ON_BoundingBox& tight_bbox, bool bGrowBox bool rc = false; if ( m_path.IsValid() && m_profile ) { + ON_Curve* bottom = Profile3d(0, 0.0); + ON_Curve* top = Profile3d(0, 1.0); + ON_BoundingBox bbox; - if ( m_profile->GetTightBoundingBox(bbox) && GetBoundingBoxHelper(*this,bbox,xform) ) + if (bottom && bottom->GetTightBoundingBox(bbox, false, xform) && top && top->GetTightBoundingBox(bbox, true, xform)) { if ( bGrowBox ) tight_bbox.Union(bbox); @@ -1726,6 +1729,9 @@ bool ON_Extrusion::GetTightBoundingBox(ON_BoundingBox& tight_bbox, bool bGrowBox tight_bbox = bbox; rc = true; } + + delete bottom; + delete top; } return rc; } diff --git a/opennurbs_intersect.cpp b/opennurbs_intersect.cpp index 125b826c..06b3ae61 100644 --- a/opennurbs_intersect.cpp +++ b/opennurbs_intersect.cpp @@ -286,12 +286,18 @@ bool ON_Intersect( const ON_Line& lineA, const ON_Line& lineB, // Line A = (5.4301839655138417, -9.5, 0, -0.6, -9.5, 0) // Line B = (5.2373595635311068, 10.5, 0, 5.6603292194932395, 10.5, 0) // would be found as intersecting, with pivot ~= 2 * M_zero_tolerance + // + // 10-SEP-2025 MDvR: RH-89164 + // I have increased the zero tolerance for the matrix by 10-fold, as the lines + // Line A(-502.12241078825264, 463.17458426757145, -2.6515717396328807e-12, - 569.15428634054422, 1336.2761199492861, 0) + // Line B(-474.85259053896368, 439.79346146347723, -2.7284841053187847e-12, -543.82881481395043, 1338.2204686719679, 0) + // were found as intersecting, with pivot ~= 2 * M_zero_tolerance. if (fabs(M[1][1]) > 1.) { pr_tolerance = fabs(M[1][1]) * ON_SQRT_EPSILON; - M_zero_tol = fabs(M[1][1]) * ON_EPSILON; + M_zero_tol = 10*fabs(M[1][1]) * ON_EPSILON; } else { pr_tolerance = ON_SQRT_EPSILON; - M_zero_tol = ON_EPSILON; + M_zero_tol = 10*ON_EPSILON; } Y[0] = ON_DotProduct( A, C ); diff --git a/opennurbs_public_version.h b/opennurbs_public_version.h index 9dd43ad7..3464bdb1 100644 --- a/opennurbs_public_version.h +++ b/opennurbs_public_version.h @@ -6,7 +6,7 @@ // To update version numbers, edit ..\build\build_dates.msbuild #define RMA_VERSION_MAJOR 8 -#define RMA_VERSION_MINOR 24 +#define RMA_VERSION_MINOR 25 //////////////////////////////////////////////////////////////// // @@ -14,9 +14,9 @@ // first step in each build. // #define RMA_VERSION_YEAR 2025 -#define RMA_VERSION_MONTH 10 -#define RMA_VERSION_DATE 8 -#define RMA_VERSION_HOUR 15 +#define RMA_VERSION_MONTH 11 +#define RMA_VERSION_DATE 24 +#define RMA_VERSION_HOUR 11 #define RMA_VERSION_MINUTE 0 //////////////////////////////////////////////////////////////// @@ -35,8 +35,8 @@ // 3 = build system release build #define RMA_VERSION_BRANCH 0 -#define VERSION_WITH_COMMAS 8,24,25281,15000 -#define VERSION_WITH_PERIODS 8.24.25281.15000 +#define VERSION_WITH_COMMAS 8,25,25328,11000 +#define VERSION_WITH_PERIODS 8.25.25328.11000 #define COPYRIGHT "Copyright (C) 1993-2025, Robert McNeel & Associates. All Rights Reserved." #define SPECIAL_BUILD_DESCRIPTION "Public OpenNURBS C++ 3dm file IO library." @@ -44,11 +44,11 @@ #define RMA_VERSION_NUMBER_MAJOR_WSTRING L"8" #define RMA_PREVIOUS_VERSION_NUMBER_MAJOR_WSTRING L"7" -#define RMA_VERSION_NUMBER_SR_STRING "SR24" -#define RMA_VERSION_NUMBER_SR_WSTRING L"SR24" +#define RMA_VERSION_NUMBER_SR_STRING "SR25" +#define RMA_VERSION_NUMBER_SR_WSTRING L"SR25" -#define RMA_VERSION_WITH_PERIODS_STRING "8.24.25281.15000" -#define RMA_VERSION_WITH_PERIODS_WSTRING L"8.24.25281.15000" +#define RMA_VERSION_WITH_PERIODS_STRING "8.25.25328.11000" +#define RMA_VERSION_WITH_PERIODS_WSTRING L"8.25.25328.11000" diff --git a/opennurbs_text.cpp b/opennurbs_text.cpp index 95cc7a33..dcb1af29 100644 --- a/opennurbs_text.cpp +++ b/opennurbs_text.cpp @@ -1729,7 +1729,11 @@ bool ON_TextContent::CreateStackedText(ON_TextRun* run, int cpcount, const ON__U stack_width += 2.0 * separator_size; double top_dy = separator_height + 1.5 * separator_size; - double bottom_dy = separator_height - 1.5 * separator_size - (bottom_run->BoundingBox().m_max.y - bottom_run->BoundingBox().m_min.y); + // 11 Oct 2025 S. Baer (RH-81827) + // Offset for the bottom stacked portion should not take m_min.y into account + // Letters that hang below like 'g' were causing the bottom stack offset to be + // too large + double bottom_dy = separator_height - 1.5 * separator_size - (bottom_run->BoundingBox().m_max.y);// - bottom_run->BoundingBox().m_min.y); ON_2dPoint box[2]; // total stacked run bounding box box[0].Set(top_run->BoundingBox().m_min.x, bottom_dy); diff --git a/zlib/opennurbs_public_zlib.xcodeproj/project.pbxproj b/zlib/opennurbs_public_zlib.xcodeproj/project.pbxproj index 7aeed10e..c68380bc 100644 --- a/zlib/opennurbs_public_zlib.xcodeproj/project.pbxproj +++ b/zlib/opennurbs_public_zlib.xcodeproj/project.pbxproj @@ -167,7 +167,7 @@ 1DB028151ED6430300FA9144 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1240; + LastUpgradeCheck = 2600; ORGANIZATIONNAME = "OpenNURBS 3dm File IO Toolkit"; TargetAttributes = { 1DB0281C1ED6430300FA9144 = {