#2608 #2609 Add disabled Solvespace S-curve calculation. Use simplified S-curve calculation. Cleaned up Gui to only whats supported.

This commit is contained in:
Jacob Støren
2018-07-04 16:49:04 +02:00
parent e739a95830
commit 7156b99b88
16 changed files with 732 additions and 22 deletions

View File

@@ -7,6 +7,7 @@
#include <iostream>
#include "SolveSpaceSystem.h"
#include "RiaSCurveCalculator.h"
/*-----------------------------------------------------------------------------
* Test calculation of an S-shape curve:
@@ -330,3 +331,91 @@ TEST(SolveSpaceSolverTest, SCurve)
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST(RiaSCurveCalculator, Test1)
{
RiaSCurveCalculator sCurveCalc({ 100, 100, 0 },
0,
M_PI/4,
12,
{ 100, 150, -1000 },
M_PI,
M_PI/4,
12);
EXPECT_TRUE(sCurveCalc.isOk() );
cvf::Vec3d v_C1 = sCurveCalc.firstCenter();
cvf::Vec3d v_C2 = sCurveCalc.secondCenter();
cvf::Vec3d v_N1 = sCurveCalc.firstNormal();
cvf::Vec3d v_N2 = sCurveCalc.secondNormal();
cvf::Vec3d v_P11 = sCurveCalc.firstArcEndpoint();
cvf::Vec3d v_P22 = sCurveCalc.secondArcStartpoint();
std::cout << "C1: " << "[ " << v_C1[0] << ", " << v_C1[1] << ", " << v_C1[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N1[0] << ", " << v_N1[1] << ", " << v_N1[2] << " ]" << std::endl;
std::cout << "P11: " << "[ " << v_P11[0] << ", " << v_P11[1] << ", " << v_P11[2] << " ]" << std::endl;
std::cout << "C2: " << "[ " << v_C2[0] << ", " << v_C2[1] << ", " << v_C2[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N2[0] << ", " << v_N2[1] << ", " << v_N2[2] << " ]" << std::endl;
std::cout << "P22: " << "[ " << v_P22[0] << ", " << v_P22[1] << ", " << v_P22[2] << " ]" << std::endl;
}
TEST(RiaSCurveCalculator, Test2)
{
RiaSCurveCalculator sCurveCalc({ 100, 100, 0 },
0,
M_PI/4,
50,
{ 100, 150, -1000 },
M_PI,
M_PI/4,
50);
EXPECT_TRUE(sCurveCalc.isOk());
cvf::Vec3d v_C1 = sCurveCalc.firstCenter();
cvf::Vec3d v_C2 = sCurveCalc.secondCenter();
cvf::Vec3d v_N1 = sCurveCalc.firstNormal();
cvf::Vec3d v_N2 = sCurveCalc.secondNormal();
cvf::Vec3d v_P11 = sCurveCalc.firstArcEndpoint();
cvf::Vec3d v_P22 = sCurveCalc.secondArcStartpoint();
std::cout << "C1: " << "[ " << v_C1[0] << ", " << v_C1[1] << ", " << v_C1[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N1[0] << ", " << v_N1[1] << ", " << v_N1[2] << " ]" << std::endl;
std::cout << "P11: " << "[ " << v_P11[0] << ", " << v_P11[1] << ", " << v_P11[2] << " ]" << std::endl;
std::cout << "C2: " << "[ " << v_C2[0] << ", " << v_C2[1] << ", " << v_C2[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N2[0] << ", " << v_N2[1] << ", " << v_N2[2] << " ]" << std::endl;
std::cout << "P22: " << "[ " << v_P22[0] << ", " << v_P22[1] << ", " << v_P22[2] << " ]" << std::endl;
}
TEST(RiaSCurveCalculator, Test3)
{
RiaSCurveCalculator sCurveCalc({ 100, 100, 0 },
0,
0.3,
50,
{ 100, 150, -1000 },
0,
0.4,
50);
EXPECT_TRUE(sCurveCalc.isOk() );
cvf::Vec3d v_C1 = sCurveCalc.firstCenter();
cvf::Vec3d v_C2 = sCurveCalc.secondCenter();
cvf::Vec3d v_N1 = sCurveCalc.firstNormal();
cvf::Vec3d v_N2 = sCurveCalc.secondNormal();
cvf::Vec3d v_P11 = sCurveCalc.firstArcEndpoint();
cvf::Vec3d v_P22 = sCurveCalc.secondArcStartpoint();
std::cout << "C1: " << "[ " << v_C1[0] << ", " << v_C1[1] << ", " << v_C1[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N1[0] << ", " << v_N1[1] << ", " << v_N1[2] << " ]" << std::endl;
std::cout << "P11: " << "[ " << v_P11[0] << ", " << v_P11[1] << ", " << v_P11[2] << " ]" << std::endl;
std::cout << "C2: " << "[ " << v_C2[0] << ", " << v_C2[1] << ", " << v_C2[2] << " ]" << std::endl;
std::cout << "N1: " << "[ " << v_N2[0] << ", " << v_N2[1] << ", " << v_N2[2] << " ]" << std::endl;
std::cout << "P22: " << "[ " << v_P22[0] << ", " << v_P22[1] << ", " << v_P22[2] << " ]" << std::endl;
}