def test_reparam(self): # identity mapping, control points generated from knot vector basis1 = BSplineBasis(4, [2, 2, 2, 2, 3, 6, 7, 7, 7, 7]) basis2 = BSplineBasis(3, [-3, -3, -3, 20, 30, 31, 31, 31]) surf = Surface(basis1, basis2) self.assertAlmostEqual(surf.start(0), 2) self.assertAlmostEqual(surf.end(0), 7) self.assertAlmostEqual(surf.start(1), -3) self.assertAlmostEqual(surf.end(1), 31) surf.reparam((4, 10), (0, 9)) self.assertAlmostEqual(surf.start(0), 4) self.assertAlmostEqual(surf.end(0), 10) self.assertAlmostEqual(surf.start(1), 0) self.assertAlmostEqual(surf.end(1), 9) surf.reparam((5, 11), direction=0) self.assertAlmostEqual(surf.start(0), 5) self.assertAlmostEqual(surf.end(0), 11) self.assertAlmostEqual(surf.start(1), 0) self.assertAlmostEqual(surf.end(1), 9) surf.reparam((5, 11), direction='v') self.assertAlmostEqual(surf.start(0), 5) self.assertAlmostEqual(surf.end(0), 11) self.assertAlmostEqual(surf.start(1), 5) self.assertAlmostEqual(surf.end(1), 11) surf.reparam((-9, 9)) self.assertAlmostEqual(surf.start(0), -9) self.assertAlmostEqual(surf.end(0), 9) self.assertAlmostEqual(surf.start(1), 0) self.assertAlmostEqual(surf.end(1), 1) surf.reparam() self.assertAlmostEqual(surf.start(0), 0) self.assertAlmostEqual(surf.end(0), 1) self.assertAlmostEqual(surf.start(1), 0) self.assertAlmostEqual(surf.end(1), 1) surf.reparam((4, 10), (0, 9)) surf.reparam(direction=1) self.assertAlmostEqual(surf.start(0), 4) self.assertAlmostEqual(surf.end(0), 10) self.assertAlmostEqual(surf.start(1), 0) self.assertAlmostEqual(surf.end(1), 1)