MCPcopy Create free account
hub / github.com/BIMCoderLiang/LNLib / TEST

Function TEST

tests/T_BezierCurve.cpp:10–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8using namespace LNLib;
9
10TEST(Test_BezierCurve, All)
11{
12 std::vector<XYZ> controlPoints = { XYZ(1,0,0),XYZ(1,1,0),XYZ(0,2,0) };
13
14 LN_BezierCurve<XYZ> curve;
15 curve.Degree = 2;
16 curve.ControlPoints = controlPoints;
17
18 XYZ result = BezierCurve::GetPointOnCurveByBernstein(curve, 0.5);
19 EXPECT_TRUE(result.IsAlmostEqualTo(XYZ(0.75, 1.0, 0.0)));
20 result = BezierCurve::GetPointOnCurveByDeCasteljau(curve, 0.5);
21 EXPECT_TRUE(result.IsAlmostEqualTo(XYZ(0.75, 1.0, 0.0)));
22
23 std::vector<XYZW> weightedControlPoints = {XYZW(1,0,0,1),XYZW(1,1,0,1),XYZW(0,2,0,2)};
24
25 LN_BezierCurve<XYZW> curve1;
26 curve1.Degree = 2;
27 curve1.ControlPoints = weightedControlPoints;
28
29 XYZW weightedResult = BezierCurve::GetPointOnCurveByBernstein(curve1, 0.5);
30 EXPECT_TRUE(weightedResult.ToXYZ(true).IsAlmostEqualTo(XYZ(3.0 / 5, 4.0 / 5, 0)));
31 weightedResult = BezierCurve::GetPointOnCurveByDeCasteljau(curve1, 0.5);
32 EXPECT_TRUE(weightedResult.ToXYZ(true).IsAlmostEqualTo(XYZ(3.0 / 5, 4.0 / 5, 0)));
33}

Callers

nothing calls this directly

Calls 6

XYZClass · 0.50
XYZWClass · 0.50
IsAlmostEqualToMethod · 0.45
ToXYZMethod · 0.45

Tested by

no test coverage detected