#3387 Add additional output from the ArcCurveCalculator

This commit is contained in:
Jacob Støren
2018-09-26 12:37:15 +02:00
parent 170da81287
commit 4170a57bf2
4 changed files with 62 additions and 9 deletions

View File

@@ -831,4 +831,46 @@ TEST(RiaJCurveCalculator, Basic)
EXPECT_TRUE(calc.curveStatus() == RiaJCurveCalculator::OK_STRAIGHT_LINE);
}
}
#include "RiaArcCurveCalculator.h"
TEST(RiaArcCurveCalculator, Basic)
{
{
RiaArcCurveCalculator calc({ 0,0,0 }, 0, M_PI/2, { 0,1000,-1000 });
EXPECT_TRUE(calc.curveStatus() == RiaArcCurveCalculator::OK);
EXPECT_NEAR(1000.0, calc.radius(), 1e-5);
EXPECT_NEAR(M_PI/2, calc.arcAngle(), 1e-5);
EXPECT_NEAR(M_PI/2*1000, calc.arcLength(), 1e-5);
cvf::Vec3d center = calc.center();
EXPECT_NEAR( 0, center.x(), 1e-5);
EXPECT_NEAR( 0, center.y(), 1e-5);
EXPECT_NEAR(-1000, center.z(), 1e-5);
cvf::Vec3d n = calc.normal();
EXPECT_NEAR(-1, n.x(), 1e-5);
EXPECT_NEAR( 0, n.y(), 1e-5);
EXPECT_NEAR( 0, n.z(), 1e-5);
cvf::Vec3d te = calc.endTangent();
EXPECT_NEAR( 0, te.x(), 1e-5);
EXPECT_NEAR( 0, te.y(), 1e-5);
EXPECT_NEAR(-1, te.z(), 1e-5);
}
{
RiaArcCurveCalculator calc({ 0,0,0 }, 0, 0, { 0, 0,-1000 });
EXPECT_TRUE(calc.curveStatus() == RiaJCurveCalculator::OK_STRAIGHT_LINE);
cvf::Vec3d te = calc.endTangent();
EXPECT_NEAR(0, te.x(), 1e-5);
EXPECT_NEAR(0, te.y(), 1e-5);
EXPECT_NEAR(-1, te.z(), 1e-5);
}
}