| 9 | using namespace LNLib; |
| 10 | |
| 11 | TEST(Test_CommonSurfaces, CreateBilinearSurface) |
| 12 | { |
| 13 | //see The NURBS Book 2nd Edition Page335 |
| 14 | XYZ P00 = XYZ(100, 0, 100); |
| 15 | XYZ P01 = XYZ(0, 0, 0); |
| 16 | XYZ P10 = XYZ(100, 100, 0); |
| 17 | XYZ P11 = XYZ(0, 100, 100); |
| 18 | |
| 19 | LN_NurbsSurface surface; |
| 20 | NurbsSurface::CreateBilinearSurface(P11, P10, P01, P00, surface); |
| 21 | XYZ mid = NurbsSurface::GetPointOnSurface(surface, UV(0.5, 0.5)); |
| 22 | EXPECT_TRUE(mid.IsAlmostEqualTo(XYZ(50, 50, 50))); |
| 23 | |
| 24 | XYZ uv00 = NurbsSurface::GetPointOnSurface(surface, UV(0, 0)); |
| 25 | XYZ uv01 = NurbsSurface::GetPointOnSurface(surface, UV(0, 1)); |
| 26 | XYZ uv10 = NurbsSurface::GetPointOnSurface(surface, UV(1, 0)); |
| 27 | XYZ uv11 = NurbsSurface::GetPointOnSurface(surface, UV(1, 1)); |
| 28 | EXPECT_TRUE(uv00.IsAlmostEqualTo(P11)); |
| 29 | EXPECT_TRUE(uv01.IsAlmostEqualTo(P10)); |
| 30 | EXPECT_TRUE(uv10.IsAlmostEqualTo(P01)); |
| 31 | EXPECT_TRUE(uv11.IsAlmostEqualTo(P00)); |
| 32 | } |
| 33 | |
| 34 | TEST(Test_CommonSurfaces, CreateCylindricalSurface) |
| 35 | { |
nothing calls this directly
no test coverage detected