Esempio n. 1
0
    def test_remove_geomdl_1(self):
        points = np.array([[0, 0, 0], [1, 1, 0], [2, 0, 0]])
        degree = 2
        kv = sv_knotvector.generate(degree, 3)
        weights = [1, 1, 1]
        ts = np.linspace(0.0, 1.0, num=5)

        curve = SvGeomdlCurve.build_geomdl(degree, kv, points, weights)
        orig_pts = curve.evaluate_array(ts)
        inserted = curve.insert_knot(0.5, 1)

        self.assert_numpy_arrays_equal(inserted.evaluate_array(ts),
                                       orig_pts,
                                       precision=8)

        expected_inserted_kv = np.array([0, 0, 0, 0.5, 1, 1, 1])
        self.assert_numpy_arrays_equal(inserted.get_knotvector(),
                                       expected_inserted_kv,
                                       precision=8)

        removed = inserted.remove_knot(0.5, 1)
        self.assert_numpy_arrays_equal(removed.get_knotvector(),
                                       kv,
                                       precision=8)
        #self.assert_numpy_arrays_equal(removed.evaluate_array(ts), orig_pts)

        #print("CP", removed.get_control_points())
        #print("W", removed.get_weights())
        self.assert_numpy_arrays_equal(removed.get_control_points(),
                                       points,
                                       precision=8)
Esempio n. 2
0
 def test_curve_tangent(self):
     geomdl_curve = SvGeomdlCurve.build_geomdl(self.degree, self.knotvector,
                                               self.control_points,
                                               self.weights)
     t1s = geomdl_curve.tangent_array(self.ts)
     native_curve = SvNativeNurbsCurve(self.degree, self.knotvector,
                                       self.control_points, self.weights)
     t2s = native_curve.tangent_array(self.ts)
     self.assert_numpy_arrays_equal(t1s, t2s, precision=8)
Esempio n. 3
0
 def test_curve_eval_2(self):
     weights = [1.0, 2.0, 3.0, 1.0]
     geomdl_curve = SvGeomdlCurve.build_geomdl(self.degree, self.knotvector,
                                               self.control_points, weights)
     t1s = geomdl_curve.evaluate_array(self.ts)
     native_curve = SvNativeNurbsCurve(self.degree, self.knotvector,
                                       self.control_points, weights)
     t2s = native_curve.evaluate_array(self.ts)
     self.assert_numpy_arrays_equal(t1s, t2s, precision=8)
Esempio n. 4
0
 def test_curve_3436_2(self):
     points = [(0, 0, 0), (0.5, 0, 0.5), (1, 0, 0)]
     ts = np.array([0, 0.5, 1])
     degree = 2
     knotvector = [0, 0, 0, 1, 1, 1]
     weights = [1, 1, 1]
     geomdl_curve = SvGeomdlCurve.build_geomdl(degree, knotvector, points,
                                               weights)
     native_curve = SvNativeNurbsCurve(degree, knotvector, points, weights)
     p1s = geomdl_curve.third_derivative_array(ts)
     p2s = native_curve.third_derivative_array(ts)
     self.assert_numpy_arrays_equal(p1s, p2s, precision=8)