#3353 Improve error messages from arc based geometry calculators.

Color dogleg text red if the constaint is not satisfied
This commit is contained in:
Jacob Støren
2018-09-24 15:31:58 +02:00
parent e55fc4990d
commit 41b24a8de2
9 changed files with 169 additions and 60 deletions

View File

@@ -804,23 +804,31 @@ TEST(RiaSCurveCalculator, ControlPointCurve)
TEST(RiaJCurveCalculator, Basic)
{
RiaJCurveCalculator calc({ 0,0,0 }, 0, M_PI/2, 100, { 0,100,-1000 });
{
RiaJCurveCalculator calc({ 0,0,0 }, 0, M_PI/2, 100, { 0,100,-1000 });
EXPECT_TRUE(calc.isOk() );
cvf::Vec3d p11 = calc.firstArcEndpoint();
EXPECT_NEAR( 0, p11.x(), 1e-5);
EXPECT_NEAR( 100, p11.y(), 1e-5);
EXPECT_NEAR( -100, p11.z(), 1e-5);
EXPECT_TRUE(calc.curveStatus() == RiaJCurveCalculator::OK);
cvf::Vec3d n = calc.firstNormal();
EXPECT_NEAR(-1, n.x(), 1e-5);
EXPECT_NEAR( 0, n.y(), 1e-5);
EXPECT_NEAR( 0, n.z(), 1e-5);
cvf::Vec3d p11 = calc.firstArcEndpoint();
EXPECT_NEAR(0, p11.x(), 1e-5);
EXPECT_NEAR(100, p11.y(), 1e-5);
EXPECT_NEAR(-100, p11.z(), 1e-5);
cvf::Vec3d n = calc.firstNormal();
EXPECT_NEAR(-1, n.x(), 1e-5);
EXPECT_NEAR(0, n.y(), 1e-5);
EXPECT_NEAR(0, n.z(), 1e-5);
cvf::Vec3d c = calc.firstCenter();
EXPECT_NEAR(0, c.x(), 1e-5);
EXPECT_NEAR(0, c.y(), 1e-5);
EXPECT_NEAR(-100, c.z(), 1e-5);
}
{
RiaJCurveCalculator calc({ 0,0,0 }, 0, 0, 100, { 0, 0,-1000 });
EXPECT_TRUE(calc.curveStatus() == RiaJCurveCalculator::OK_STRAIGHT_LINE);
}
cvf::Vec3d c = calc.firstCenter();
EXPECT_NEAR( 0, c.x(), 1e-5);
EXPECT_NEAR( 0, c.y(), 1e-5);
EXPECT_NEAR(-100, c.z(), 1e-5);
}